您的位置:首页 >HTML编码绕过转义的存储型XSS攻击方法
发布于2026-03-16 阅读(0)
扫一扫,手机访问

本文详解在引号被反斜杠转义、尖括号被过滤的受限环境下,如何通过 HTML 实体编码构造合法的 onerror 事件 payload,成功触发存储型 XSS,重点演示 eval() 配合编码绕过的实战技巧。
本文详解在引号被反斜杠转义、尖括号被过滤的受限环境下,如何通过 HTML 实体编码构造合法的 `onerror` 事件 payload,成功触发存储型 XSS,重点演示 `eval()` 配合编码绕过的实战技巧。
在实际渗透测试中,遇到存储型 XSS 时,常会遭遇服务端的多重防护:如对单/双引号自动添加反斜杠(\)、移除或编码 < > 标签、甚至过滤关键词(如 script、javascript:)。此时直接注入 <img src=x onerror="alert(1)"> 会被拦截或破坏语法结构,导致 payload 失效。
但关键在于:HTML 解析器会在执行 JavaScript 前,先完成 HTML 实体解码。这意味着,只要将 JS 代码中的敏感字符(如引号、括号、字母)转换为十进制 HTML 实体(如 a → a),就能在不使用原始符号的前提下,拼出可执行的 JS 表达式。
例如,目标存在如下受控 <img> 标签:
<img class="br64 mr15" onerror="this.onerror=null;this.src=`https://www.examplesite.zcs/default.png`;" width="100" height="100" src="xss is here">
虽然 " ' ( ) < > 等字符被转义或过滤,但我们可以将 alert('1') 全量 HTML 编码为:
alert('1')
对应解码后即为 alert('1') —— 注意:( 是 ( 的命名实体,) 是 ),' 是 ',均属标准 HTML 实体,兼容性好且绕过所有基于正则的引号/括号检测。
最终构造的绕过 payload 如下:
<img class="br64 mr15"
src="badurl.png"
onerror="eval(alert('1'));"
width="100"
height="100"
src="xss is here">✅ 优势分析:
⚠️ 注意事项:
总结而言,HTML 实体编码是突破基础输入过滤的高效手段。它不依赖特殊字符,不触发常见 WAF 规则,且与 DOM 渲染流程天然契合。掌握 &#xx; + &named; 的组合技巧,能显著提升在受限 XSS 场景下的利用成功率。
上一篇:硬盘利用率自动检测方法
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9