您现在的位置: 华盟网 >> Hack >> 黑客技术 >> 黑客入侵 >> 正文

[组图]使用HTTP头去绕过WAF

2016/8/9 作者:Mottoin 来源: 网络收集
导读 现在,各个安全厂商的WAF越来越多了,虽然它们的WAF卖得挺贵,但是买的人也不少(运营商、互联网企业、政府部门、传统的产业)。

   前言

  现在,各个安全厂商的WAF越来越多了,虽然它们的WAF卖得挺贵,但是买的人也不少(运营商、互联网企业、政府部门、传统的产业)。因此我们也是经常碰到那么多WAF啊,绕过WAF技术千姿百态,各种天花乱坠的的招数。有些招数对于V WAF绕得过,有些招数对于N WAF可以绕过,还有的招数对于哪个WAF都绕不过(自认倒霉吧,估计管理设置WAF策略的兄弟妹子也是一个高手,要不然就是他们请了大牛)。

  下面介绍一种绕过WAF的策略。

  1 原因分析

  Web应用防火墙(WAF)是Web应用程序深度防御模型的一部分。它虽然不是安全代码的替代品,但却提供了过滤恶意输入的伟大选择。这里有一个实际的评估,其中部分企业部署的WAF是很容易被绕过,毕竟真正会部署WAF策略的运维人员也很少,基本上还是得靠安全厂商的工程师来运维。极差的设计或者错误的配置都会导致该WAF很容易被绕过。在应用程序生产部署时候,测试应用程序的安全性是很重要的。虽然这个应用程序可能在开发或质量保证进行了评估。但是当你们在部署它的时候,你可能会引入由于配置问题的新的攻击向量。例如我们虚拟银行Heisenberg Bank.就是这种情况。

  当执行起这个安全评估时,我快速地模糊测试了我平时会考虑到的所有应用程序终端点。截图如下:

      

  上图是一个被WAF阻挡后,返回的页面信息。经过一些调查后,我发现了本地机器是因为触发了一些规则而被WAF拦截的,这些规则如下:

  快速连续地使用POST请求表格

  快速连续地使用GET去请求大多数的页面

  确实CSRF 标志

  恶意字符

  每当上面的任何一个条件得到满足后,WAF会使用页面错误代码来阻止攻击者进行访问,阻挡时间为5分钟。既然这样,那么我们应该如何去进行下一步昵?使用编码载荷来绕过WAF正则匹配式的常规方法近来是行不通的,毕竟WAF已经走过漫长的岁月了。不过,我们可以声东击西。

  在等待被WAF解开封锁的期间,我决定做一些关于WAF的研究。在浏览几个WAF实施指南时,我发现了一个论坛曾提及到,使用缓存服务/设备去整合一个WAF。它的描述类似于用户很费劲地站立起来,好像清漆缠身或在不同的主机上运行的代理/加速器装置。然后该WAF挡住该服务器。当然,供应商毫不犹豫地回答道,你可以基于IP的设备部署白名单,让这些IP不被WAF检查。

  在这一点上,一切都还是很好。接下来的正是Heisenberg Bank 及其WAF 表现不佳的地方。通过更多阅读,我发现,WAF并不是在传入的请求做了一个真正的查询(类似于REMOTE_ADDR,或者其他类似的东西),WAF是在寻找一个*定制* HTTP标头。在用户或其他服务器连接到WAF的情况下,它的工作流程如下图所示:

         

  由图我们得知,WAF并非真正地检查请求的HTTP头。而具体的实现是检查头部的X始发-IP请求。那么,哪个设备应该被WAF配置为信任昵?在这种情况下,默认是WAF本身。

  2 实际操作

  因为我控制所有被发送浏览器的HTTP请求,我可以轻松地添加这样的HTTP头去愚弄WAF认为我(攻击者)是WAF它,让我完全绕过它的保护功能:

      

  经过进一步研究,这些HTTP头有可能被WAF定义为白名单(而不是做一个适当的查找):

  X-forwarded-for #把这个定义为缓存服务器

  X-remote-IP #把这个定义为代理服务器,或者同网段IP

  X-originating-IP #把这个定义为服务器主机的ip或者127.0.01

  x-remote-addr #把这定义为内部IP,例如172段,或者192段,或者10段

  我们可以通过各种信息侦察和调查发现,有些IP地址是处于WAF的白名单中的。 如下图所示:

      

  搞清楚绕过后,其余的评估取得了许多其他的漏洞和加快了速度,这得益于我可以绕过WAF。这就和拦截内联代理头并且把头部添加到所有的请求一样简单。

  一个简单的解决方案是让您的前端代理剥离所有带非标准的HTTP头,但那么你还在玩猫捉老鼠的黑名单游戏。更妙的是,咨询你的供应商WAF,看看什么样的头可以被接受,默认被启用。然后寻找一个不依赖于攻击者可以伪造信息的解决方案。

  一般来说,你也可以使用Gethead来审核您的网站的HTTP标头的安全性。Gethead是我们的动态测试团队的领导者Nathan LaFollette (@httphacker).的一个项目。该博客的一个真棒追随者也做了一个burpsuite套件的扩展,将这些头添加到您的所有请求

  burpsuite WAF绕过插件下载地址:https://github.com/codewatchorg/bypasswaf

  或者在burp主界面 extender –>>BApp Store–>>左侧–>>下拉找到 BypassWAF

  3 burpsuite插件bypasswaf

  1 添加头部到所有Burp请求来绕过某些WAF产品。这个扩展自动地将下列头部添加到所有请求去。

  X-Originating-IP: 127.0.0.1

  X-Forwarded-For: 127.0.0.1

  X-Remote-IP: 127.0.0.1

  X-Remote-Addr: 127.0.0.1

  2 用法与步骤:

  添加该插件到burp

  在burp中创建一个会话处理规则以此来激活该插件。

  修改范围以包括可应用的工具和URLs

  开始测试

  3使用截图

      

                  微信群名称:华盟黑白之道二群     华盟-黑白之道⑦QQ群: 9430885

  • 上一篇Hack:

  • 下一篇Hack: 没有了
  • 网友评论
      验证码
     

    关注

    分享

    0

    讨论

    2

    猜你喜欢

    论坛最新贴