xss绕过html实体化,通过脚本片段绕过XSS防御

本文深入探讨了XSS攻击与防御的现状,特别是在使用JavaScript框架时,如何通过脚本片段绕过常见的XSS防御措施。研究发现,包括WAF、CSP、HTML净化在内的多种防御手段,都无法完全防止脚本片段引发的XSS攻击。通过分析16种流行框架,展示了如何利用脚本片段在不同防御环境下执行任意JS代码,揭示了XSS防御的挑战与潜在风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原标题:通过脚本片段绕过XSS防御

6594e7ce7bea5fb7f66d7adea8de204f.png

从恶作剧弹框到盲打后台乃至沦陷一个企业,XSS的危害可大可小,近年来,XSS攻击与防御的博弈持续不断,下面是今年5月份北爱尔兰首府举行的OWASP AppSec EU的安全议题:通过脚本片段绕过XSS防御。

一、XSS 防御措施

尽管业界付出了很多努力,XSS依然是一个广泛且未解决的问题。有数据指出:谷歌VRP中70%的漏洞是XSS漏洞。

XSS防御技术的通用假设为:XSS将会永远存在,我们应把重点放在XSS防御上。

防御措施主要是阻止以下类型的XSS攻击:

43cdeaa3008a81f6a86b8348ca74cc51.png

具体可分为:

1、WAF, XSS filters

阻断包含危险标签和属性的请求。

2、HTML净化

从HTML中移除危险的标签和属性。

3、内容安全策略CSP

区分合法的和非法注入的JS代码

bb6a34582140f333f3b908603f48aa8c.png

二、使用JS框架

防御手段认为封锁危险的标签和属性可以阻止XSS攻击,那么当前流行的JS框架来构建一个应用程序时,这种手段是否还可行?

首先提及选择器,Java通过选择器与DOM进行交互:

<myTagid="someId" class="class1”data-foo="bar"> </myTag>

<>

tags =querySelectorAll("myTag"); // by tag name

tags = querySelectorAll("#someId");// by id

tags =querySelectorAll(".class1"); // by class name

tags =querySelectorAll("[data-foo]"); // by attribute name

tags =querySelectorAll("[data-foo^=bar]"); // by attribute value

</>

在JS框架中,选择器是所有Java框架和库的基本元素。例如:

jQuery因它的$函数而闻名:

$(' <jqueryselector>').append('some text to append');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值