WAF的XSS绕过姿势

CracerCracer 2016-3-25 渗透测试 725 0 2

0×00 概要

由于应用防火墙的广泛使用,实验测试WAF抵御xss攻击的能力变的很有必要。当然所有的实验就是为了证明厂商要从根源上杜绝漏洞,不能躺在WAF上高枕无忧。

实验测试的对象是一些流行的WAF 例如F5 Big IP、Imperva Incapsula、AQTRONIX WebKnight、PHP-IDS、Mod-Security、Sucuri、QuickDefense、Barracuda WAF 他们都在测试中被绕过。

0×01 介绍 

Web应用防火墙(WAF)是一个应用,服务器插件,或者过滤器,利用一系列规则过滤http会话。通常这些规则用来防御常规威胁,XSS,SQL注入和一些web相关的漏洞。本次测试只关注WAF保护的绕过方法。

0×02 测试环境

Google Chrome
Opera Browser
Mozilla Firefox
Internet Explorer

0×03 测试结果

1. Imperva Incapsula 

测试中发现,Imperva Incapsula过滤了很多常见的xss载荷,例如 <img/src="x"/onerror="alert(1)">就被过滤了。同时发现<img src=x onerror="input">没有检测出来,绕过过滤的唯一的障碍就是寻找在error上的行为。alert(), prompt(), confirm(), eval() 全被禁止,只能找其他替代的方法证明xss漏洞的存在。

0×00 概要

由于应用防火墙的广泛使用,实验测试WAF抵御xss攻击的能力变的很有必要。当然所有的实验就是为了证明厂商要从根源上杜绝漏洞,不能躺在WAF上高枕无忧。

实验测试的对象是一些流行的WAF 例如F5 Big IP、Imperva Incapsula、AQTRONIX WebKnight、PHP-IDS、Mod-Security、Sucuri、QuickDefense、Barracuda WAF 他们都在测试中被绕过。

0×01 介绍 

Web应用防火墙(WAF)是一个应用,服务器插件,或者过滤器,利用一系列规则过滤http会话。通常这些规则用来防御常规威胁,XSS,SQL注入和一些web相关的漏洞。本次测试只关注WAF保护的绕过方法。

0×02 测试环境

Google Chrome
Opera Browser
Mozilla Firefox
Internet Explorer

0×03 测试结果

1. Imperva Incapsula 

测试中发现,Imperva Incapsula过滤了很多常见的xss载荷,例如 <img/src="x"/onerror="alert(1)">就被过滤了。同时发现<img src=x onerror="input">没有检测出来,绕过过滤的唯一的障碍就是寻找在error上的行为。alert(), prompt(), confirm(), eval() 全被禁止,只能找其他替代的方法证明xss漏洞的存在。

1

6.3 第三次绕过 Triple URL 编码

<b/%25%32%35%25%33%36%25%36%36%25%32%35%25%33%36%25%36%35mouseover=alert(1)>

7. Quick Defense 

当前Quick Defense 的过滤规则还不足以支持产品级的web应用,尽管黑名单中有很多JS事件,用一些编码技术就能绕过。

7.1 第一次绕过:OnSearch JS 事件 + Unicode 编码 (Google Chrome)

<input type="search" onsearch="aler\u0074(1)">

7.2 第二次绕过 :OnToggle JS 事件 + Unicode 编码(Google Chrome)

<details ontoggle="aler\u0074(1)">

8. Sucuri WAF

Sucuri WAF 对恶意请求同样相当敏感。在今年四月,许多研究者完全绕过了Sucuri WAF 因而所有的发现都被修补好了,只能依靠旧版的浏览器才能实现xss。

绕过方法 :US编码 (IE6和IE7)

2

0×04 厂商回复

除PHP-IDS没有回复以外其他厂商都修补了漏洞。

0×05 小结

结合各自WAF的弱点构造攻击向量绕过过滤器是完全可能的事情,对厂商来说,WAF可以让攻击者花费更多的时间,但是从根本上调查修补漏洞依然必不可少。

转载请注明来自Cracer,本文标题:《WAF的XSS绕过姿势》

喜欢 (2) 发布评论
发表评论


Top