事情起因#
来自某内测靶场,未开放注册,跟随在字节脉搏的lation老哥复现一遍,学习姿势,靶场地址
探寻注入方式#
打开靶场长这样:

看起来一个 “简单” 的登录框,burp拦截发送reapter开始探测

看起来很正常,只有username和passwd两个字段,先尝试万能密码账号

登录失败,这里有个小技巧,建议burp改参数时选中自己添加的部分ctrl+U过一次URL编码
admin加单引号也没啥反应,后面加and 1=1和and 1=2也没啥反应
尝试passwd字段加单引号

也没啥反应,尝试报错注入:

也没啥反应,尝试宽字节注入:

报错了,尝试闭合报错语句:

经测试,除了--+还有#和-- -均能闭合
注入数据#
老规矩,先查询列数:

报错了,可以看到报错处提示near 'der by 3,说明我们的or被吃了,尝试双写绕过:


order by 3没问题,order by 4报错了,union select查看回显字段:

直接回显登录成功,flag在flag1表中,列名为key1(我这里显示有点重叠),直接查值

发现没变化
在报错注入的时候需有对
information_schema库有读取权限
无
information_schema库读取权限,需同时猜解列名和表名(较难)
那我们就使用之前的报错注入来查询数据:

注意,此处在%df%27后面还有一个%
参考文章:
本文完。