MENU

一道CTF的SQL注入题

本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担

事情起因

来自某内测靶场,未开放注册,跟随在字节脉搏的lation老哥复现一遍,学习姿势,靶场地址

探寻注入方式

打开靶场长这样:

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

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

登录失败,这里有个小技巧,建议burp改参数时选中自己添加的部分ctrl+U过一次URL编码

admin加单引号也没啥反应,后面加and 1=1and 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后面还有一个%

参考文章:

本文完。

最后编辑于: 2020 年 03 月 20 日