当前位置:WooYun(白帽子技术社区) >> 防火墙绕过技巧 >> bypass姿势汇总

bypass姿势汇总

MayIKissYou | 2015-01-04 17:16

最近做web测试的时候也翻阅了不少资料,各种姿势下的bypass,自己看到的和分析的总结一下,分享给小伙伴们。

1:数据流向:
如下图所示:
数据流程
描述了从浏览器敲下URL到请求最终发送到web服务器,中间经历了多少设备,哪些地方经过了处理,哪些地方没有经过处理。
经过公网的时候,公网一般都是一些工作在网络层的设备,这些设备基本做路由转发,不会对于数据包进行应用层处理的。在到达目标服务器之前,可能会有一些防护设备,如云waf,又如硬件waf,ips,ids设备,这些设备会对于数据包进行处理,因此在此处针对于一些应用层的防护设备应该有bypass的姿势,为第一个角度。数据包会发送到终端,终端会有windows和linux之分,同时不同操作系统上也会安装不一样的主机防护,如safedog,因此针对此类主机防护可能也会有bypass的姿势,为第二个角度。经过主机防护的包会发送到web服务器,web服务器也有很多种,如常见的apache和iis等。因此针对于web服务器也会有bypass的姿势,为第三个角度。web服务器的数据流会被发布在web服务器上的应用程序处理,针对于应用程序同样也会有bypass的姿势,为第四个角度web程序处理的过程中会与数据库交互,不同的数据库有不同的特性,应此对于不同的数据库同样会有bypass的姿势,为第五个角度。

2:waf以及主机防护bypass
现在市面上各种waf与主机防护,如百度云加速,阿里云盾,加速乐,安全宝,安全狗,云锁,360网站卫士等等,之前编写了一篇文章,bypass ips姿势的,其实测试过的都知道,里面的一些trick适用于很多防护设备的,这里将总结补充下:
1):修改请求的方式,请求的内容一般分为get,post以及cookie的方式,post下又会有urlencode以及form-data的提交两种
2):截断字符的利用
3):关键字url编码的利用
4):脏数据的添加,即添加无效数据,有可能超过最大的检测长度,而导致bypass,之前写过一个bypass安全狗的就是利用的此trick
5):fuzz测试,这里我一般会每一种请求方式均fuzz一次,这里fuzz的地方,主要是有可能waf之类的设备处理某些字符不当导致了bypass。
6):对于waf类的其实找到原始IP直接访问,也是一种bypass的方法。

3:webserver端的bypass姿势
webserver常见的iis,apache以及tomcat等等
我见到过的可能可以利用的:
1):iis在asp程序处理中,对于%处理的不是太好,貌似直接显示空白了
2):iis在aspx程序处理中对于%u00处理的不是太好,貌似直接显示空白了
3):iis加asp环境下的复参攻击,在如下连接中有参考:
4):apache服务器对于畸形请求的解析,此处没有考证,漏洞连接
WooYun: 安全宝SQL注入规则绕过
http://www.80sec.com/%E6%B5%85%E8%B0%88%E7%BB%95%E8%BF%87waf%E7%9A%84%E6%95%B0%E7%A7%8D%E6%96%B9%E6%B3%95.html

4:web程序端bypass姿势
web程序一般运行在webserver上,web程序在获取参数如果选择方式不正确可能造成bypass:
1:asp asp.net中获取参数如果使用的Request['']的形式的话,可以使用畸形的请求,如一个GET请求,同时还发送了post部分的内容
2:之前说到更换提交方式绕过的其实需要此处web程序的支持,如常见的dedecms就会支持get post以及cookie的提交。

5:数据库端的bypass姿势
数据库端的bypass大多是利用了数据库的特性,数据库有mysql,mssql,oracle等等
其实数据到最后在数据库被执行了才算是真正的bypass,因此直接从数据库特性去测试一般是最有效的:
mysql的特性,之前有一篇帖子专门描述了mysql的测试结果,并且经本人测试在很多的waf下利用某些trick都是能bypass的,帖子链接:
http://zone.wooyun.org/content/16772
1):空白符的利用(之前有人做过空白符的测试)【http://zone.wooyun.org/content/15953】
SQLite3 0A 0D 0C 09 20
MySQL5 09 0A 0B 0C 0D A0 20
PosgresSQL 0A 0D 0C 09 20
Oracle 11g 00 0A 0D 0C 09 20
MSSQL 01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20
在数据库中的空白符可能和php或者其他的web程序端的空白符存在差异,这样的差异可能就会导致绕过正则或其他防御的绕过。

2):利用数据库fuzz测试,在http://zone.wooyun.org/content/16772中有小伙伴就做了相关的测试,如:
select * from dual where id =1[]union[]select[]1,2,3,4 from[]m,
经大量测试发现select[]位置处的fuzz成功内容,往往可以bypass大量防御规则。

ps.最近测试比较多,发现或多或少都会有一些问题,so各位使用waf的小伙伴,尽量还是保证好自己web程序安全的基础上再使用waf,不要完全依赖waf

分享到:
  1. 1#
    回复此人 感谢
    HackBraid | 2015-01-04 17:20

    学习

  2. 2#
    回复此人 感谢
    纷纭 (:-)) | 2015-01-04 17:21

    牛x~~  mark

  3. 3#
    回复此人 感谢
    RainShine (I'm your angel of music.) | 2015-01-04 18:49

    不错,Mark了先。

  4. 4#
    回复此人 感谢
    HackBraid | 2015-01-04 19:00

    safeDog IIS吗?Fuzz时有没有出现返回400情况?

  5. 5#
    回复此人 感谢
    Forever80s (~~~~~~~~) | 2015-01-04 19:18

    整理的真全

  6. 6# 感谢(1)
    回复此人 感谢
    MayIKissYou | 2015-01-04 19:43

    @HackBraid 会的,iis在解析一些不认得的字符的时候感觉会badrequest

  7. 7#
    回复此人 感谢
    RedFree (‮11:11 11-11-1112 |※(器杀制自) | 2015-01-04 19:53

    @MayIKissYou 已加精。

  8. 8#
    回复此人 感谢
    HackBraid | 2015-01-04 21:20

    @MayIKissYou 嗯,怎么判断就是绕过?我抓包看不是被狗咬就是400 bad request

  9. 9# 感谢(1)
    回复此人 感谢
    MayIKissYou | 2015-01-04 21:28

    @HackBraid 绕过会显示页面内容的哦  iis的时候大部分都是400的

  10. 10#
    回复此人 感谢
    Richy | 2015-01-05 13:29

    牛!

  11. 11#
    回复此人 感谢
    HackBraid | 2015-01-05 13:35

    @MayIKissYou 嗯嗯,晓得了,感谢受教!wb送上

  12. 12#
    回复此人 感谢
    D_in | 2015-01-05 14:10

    学习先

  13. 13#
    回复此人 感谢
    deepweb | 2015-01-05 16:57

    做个记号 晚上慢慢看

  14. 14#
    回复此人 感谢
    天明 (我要为大叔报仇) | 2015-01-06 10:19

    先做个几号,等下留下来

  15. 15#
    回复此人 感谢
    stomach | 2015-01-06 10:50

    mark

  16. 16#
    回复此人 感谢
    疯狗 (阅尽天下漏洞,心中自然无码。) | 2015-01-06 11:18

    这个可以上Drops不 :}

  17. 17#
    回复此人 感谢
    ztaosony | 2015-01-12 16:03

    这个可以学习

  18. 18#
    回复此人 感谢
    Helen高仿版%3CiFRame | 2015-01-13 00:45

    长姿势了

  19. 19#
    回复此人 感谢
    Helen高仿版%3CiFRame | 2015-01-13 00:46
  20. 20#
    回复此人 感谢
    Vinc (Q-Q-眼-W-R|Q-Q-闪现-R) | 2015-01-13 14:27

    搜噶

  21. 21#
    回复此人 感谢
    cnssr4bb1t (我就看看) | 2015-01-14 17:46

    感觉可以上drops啊

  22. 22#
    回复此人 感谢
    lnterface | 2015-01-26 23:27

    学习了

  23. 23#
    回复此人 感谢
    MeirLin (我需要AV(安慰)) | 2015-01-26 23:49

    [img src="http://www.wooyun.org//ajaxdo.php?module=attendbug&id=93613&rid=0.7675242493860424&token=bcf32548b837bfc3d92c62a281666714" alt="11"/]

  24. 24#
    回复此人 感谢
    lightless | 2015-01-27 09:01

    涨姿势了。。

  25. 25#
    回复此人 感谢
    钱富贵 | 2015-01-29 02:56

    认识几个开发waf的人,或黑他们数据,就知道怎么绕waf了,当年买waf时就交了个这样的朋友,告诉了我很多方法。天存的waf个人认为最好。

  26. 26#
    回复此人 感谢
    ziwen (我是个坏人:-D) | 2015-01-29 04:47

    先做个几号,等下留下来

  27. 27# 感谢(2)
    回复此人 感谢
    中央军 | 2015-02-09 19:38

    好文章~

  28. 28#
    回复此人 感谢
    稀饭粥 | 2015-05-05 17:51

    最近在学习SQL注入,这个必须赞!

  29. 29#
    回复此人 感谢
    Zephyrus (Free your mind) | 2015-06-18 16:09

    mark

  30. 30#
    回复此人 感谢
    MiCi (小白,不断努力学习中) | 2015-07-14 22:52

    mark 学习

  31. 31#
    回复此人 感谢
    BeenQuiver | 2015-08-15 13:59

    吊炸天

添加新回复

登录 后才能参与评论.

WooYun(白帽子技术社区)

网络安全资讯、讨论,跨站师,渗透师,结界师聚集之地

登录