事情起因#
来自某内测靶场,未开放注册,跟随在字节脉搏的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
后面还有一个%
参考文章:
本文完。