脚本工具绕过XSS防御机制

Posted ArkTeam

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了脚本工具绕过XSS防御机制相关的知识,希望对你有一定的参考价值。

原文标题:Code-Reuse Attacks for the web: Breaking Cross-Site Scripting Mitigations via Script Gadgets.

原文会议:2017 ACM SIGSAC Conference on Computer and Communications Security.

在XSS被提出之后直到今天,它一直是web中非常严重的的问题。因此,有许多缓解XSS的方法被提出作为第二道防线。比如:html Sanitizers、WAF、CSP和浏览器XSS过滤器。这篇文章的重点是使用一种称为"script gadgets"的内嵌在web应用中的合法JS片段。通过页面中的DOM选择器来绕过现存的一些缓解机制。且这些"script gadgets"可以在现代的JS框架中被找到。

研究人员提出了一种新的攻击方法,攻击过程如下:

(1)将有效载荷注入到原始的HTML页面。此有效载荷仅包含良性的HTML标记,并与web应用程序使用的DOM选择器相匹配。

(2)XSS的防御机制验证它。缓解机制检查注入的内容,良性的HTML标记被保留。

(3)Gadget使用DOM选择器从DOM中注入有效载荷,并将其转换为JS语句。

(4)转换后的JS语句被执行。



图1 实施攻击的一个简单例子

接着对现代的16个javascript库进行了手动研究。基于概念证明(POC),研究人员证明几乎所有的这些库都包含了这些gadgets。然后在文章中详细地说明了如何用这些gadgets规避上述提到的缓解技术。例子如下所示:


图2 使用gadgets绕过缓解机制方法

然后研究人员根据手工研究的结果建立了一个能够自动检测和验证gadget的工具链。基于此工具链,研究人员对Alexa的Top 5000的网站,包括65万多个网页进行了实证研究。结果在数据集中19.88%的域中存在能够导致XSS的gadgets。

由于难以找到某种方式来抵御这种XSS攻击,建议web安全工程师的重点应该要从缓解技术转向隔离和预防技术。

以上是关于脚本工具绕过XSS防御机制的主要内容,如果未能解决你的问题,请参考以下文章

JAVA WEB之XSS防御工具类代码示例

JAVA WEB之XSS防御工具类代码示例

JAVA WEB之XSS防御工具类代码示例

JAVA WEB之XSS防御工具类代码示例

BruteXSS:Xss漏洞扫描脚本

绕过WAF的XSS检测机制