脚本工具绕过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防御机制的主要内容,如果未能解决你的问题,请参考以下文章