文章总结: 本文介绍了利用浏览器开发者工具断点调试法发现DOM型XSS漏洞的技巧。核心思路是在DOMsink处设置断点,通过拦截事件处理程序触发时的变量状态,验证输入点是否可控并成功执行危险操作。文章通过location.href赋值实例,演示了利用javascript协议进行XSS攻击的具体过程。 综合评分: 70 文章分类: WEB安全,漏洞分析,渗透测试,代码审计,漏洞POC
如何发现domxss
原创
intigriti
迪哥讲事
2025年12月23日 09:01 江苏
如何发现domxss
正文
之前写过dom xss的一些基础: https://t.zsxq.com/DRGoP
里面介绍了基本的source和sink,本质上来讲,寻找dom 类型的xss就是去寻找source和sink,然后去进行js代码审计
除了这个思路以外,本文主要介绍另外一种方法
这种方法涉及在运行时主动拦截由事件处理程序触发的 DOM 事件。 需要使用浏览器的开发者工具,在 DOM sink 的位置进行搜索,并在输入可能被处理的地方设置断点。
下面通过一个例子来展示一下
目标: https://example.com/?r=intigriti&x=1
脚本逻辑:
从 URL 取参数 r
从 URL 取参数 x
如果 x 存在,就执行:
location.href = r;
➤ 攻击者的思路:
如果 r 可以被控制,且被直接赋给 location.href → 就有可能导致开放重定向,甚至链式 XSS。
① 在 DevTools 中搜索 DOM sinks
(你已经做了)
你搜索了 location、href、或 intigriti,找到了相关代码。
② 在关键语句设置断点 例如:
if (x) location.href = r;
设置一个 断点。
③ 触发页面加载 → JavaScript 在这里暂停 现在能在 Scope 中看到:
payload( r: “intigriti” )已经进入脚本
程序即将执行危险的 sink(location.href)
这就是 DOM-based XSS 调试的核心:
👉 通过断点,在危险函数执行前把攻击者输入“截获”下来。
尝试把 r 注入为恶意 URL,例如:
https://example.com/?r=javascript:alert(1)&x=1
调试时会看到: Scope 显示:
r: "javascript:alert(1)"
x: "1"
执行到:
location.href = r;
浏览器就会执行:
location.href = "javascript:alert(1)";
→ XSS 弹窗触发
如果你是一个长期主义者,欢迎加入我的知识星球,本星球日日更新,绝非简单搬运,包含号主大量一线实战,全网独一无二,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
往期回顾
#
如何利用ai辅助挖漏洞
#
如何在移动端抓包-下
#
如何绕过签名校验
#
一款bp神器
挖掘有回显ssrf的隐藏payload
ssrf绕过新思路
一个辅助测试ssrf的工具
dom-xss精选文章
年度精选文章
Nuclei权威指南-如何躺赚
漏洞赏金猎人系列-如何测试设置功能IV
漏洞赏金猎人系列-如何测试注册功能以及相关Tips
参考
https://www.intigriti.com/researchers/blog/hacking-tools/exploiting-dom-based-xss-vulnerabilities
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:迪哥讲事 intigriti《如何发现domxss》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论