HUNT-DOM 是一个面向客户端 DOM 漏洞的安全测试技能,内容以授权前提、强制确认流程、攻击面信号、分阶段检查方法、漏洞链影响表和验证纪律为主。它不提供自动化扫描器,而是给出一组可复制执行的命令、源码审计模式与受控验证示例,供安全评估人员在自己的授权测试范围内使用。
用途与定位 该技能聚焦“只在受害者浏览器中发生”的 DOM 类漏洞,包括 DOM Clobbering、PostMessage 消息处理缺陷、Service Worker 滥用、CSS 注入外带、框架接收器(如 dangerouslySetInnerHTML、v-html、innerHTML)以及客户端模板注入。其核心目标是帮助评估者识别从可控源到有实际影响接收器的完整链路,而不是仅凭单点信号下结论。
强制授权门禁 在执行任何会探测、利用、修改、持久化、提取数据或尝试凭据访问的命令之前,必须完成四步确认:让用户写出精确的目标 URL、IP、账户或资源;让用户确认已获得书面授权及允许范围;展示将执行的确切命令并解释其预期效果;等待当前对话中的明确确认。未获得确认时,技能要求保持只读,仅提供防御性建议,并优先使用沙箱、一次性虚拟机或受控实验环境。
主要能力与分阶段方法 第一阶段为 DOM Clobbering:通过注入不带脚本的 HTML 标记,覆盖应用读取的全局变量或元素命名属性,并追踪其是否最终进入 location、innerHTML、eval、script.src 等接收器。技能给出单层覆盖、嵌套 form/input 覆盖、baseURI 相对地址劫持等示例,并提供浏览器控制台脚本用于识别可疑全局变量,以及用于源码审计的 grep 模式。还特别提示 jQuery 3.5.0 以下版本中 htmlPrefilter 自闭合标签导致的 XSS 问题(CVE-2020-11022、CVE-2020-11023)。
第二阶段为 PostMessage 劫持:分为监听器信任跨源数据、发送方以 targetOrigin 为通配符广播敏感信息两类问题。技能提供定位消息监听器与发送方的 grep 命令、受控实验室中的测试帧示例,并强调仅记录到消息不等于漏洞,必须追踪实际处理逻辑与接收器。它还说明弱校验(如 indexOf、endsWith、正则匹配)可被相似域名绕过,opaque origin 会序列化为 null,不能视为可信来源。
第三阶段为 Service Worker 滥用:技能明确纠正一个常见错误——Service Worker 脚本 URL 必须与注册页面同源,跨源脚本 URL 会抛出 SecurityError,Service-Worker-Allowed 只影响作用域而非脚本位置。现实路径是先把同源 JavaScript 放到目标源上,再从同源 XSS 注册,从而拦截作用域内的 fetch 请求。技能给出枚举现有 Service Worker 及其作用域、检查上传路由返回内容类型的命令,并强调注册成功不等于拦截生效,测试后需注销测试 worker 并清理测试缓存。
第四阶段为 CSS 注入与外带:在攻击者能控制 CSS 的前提下,利用属性选择器与 url() 逐字符泄露 CSRF token、API key 或 nonce。技能说明 CSS 外带不能绕过限制外部资源源的 CSP(style-src、img-src、connect-src、default-src、form-action),因此必须先读取实际响应头中的 CSP;若外部源被锁定,则应明确说明该方法不可行。技能给出单字符规则生成脚本,并指出真实外带需要借助 @import 递归按前缀逐位推进。
第五阶段与第六阶段分别覆盖框架接收器和客户端模板注入:通过 grep 查找 dangerouslySetInnerHTML、v-html、[innerHTML]、.html() 等用法,追踪用户数据是否未经消毒直接到达;检测 Angular、Vue、Handlebars、Mustache、Nunjucks 等框架,并说明需在实时 DOM 中而非原始 HTML 中验证 {{7*7}} 是否被客户端求值。
验证与误报纪律 技能强调可复现证据:DOM Clobbering 需证明被覆盖值确实到达接收器并产生执行、导航或加载行为;PostMessage 需区分缺失校验与弱校验,并从相似源绕过验证;CSS 外带需先读 CSP,并以自建回调服务收到带唯一标记的请求作为证据,且网络面板中被阻止的请求与成功请求难以区分,应在回调侧确认;Service Worker 需证明持久性(关闭标签后重新打开仍有新的回调命中且无需再次触发 XSS)。所有测试应使用唯一标记以区分背景流量,并对比渲染后的 DOM 而非原始 HTML。
适用场景与限制 该技能适用于获得书面授权的安全评估、渗透测试与受控实验环境,用于发现和验证客户端 DOM 类漏洞。其限制包括:仅限教育与授权用途,禁止未授权滥用;不提供自动化扫描引擎;许多验证依赖人工追踪源码与接收器;CSS 外带受 CSP 约束;Service Worker 注册受同源、安全上下文、MIME 类型与浏览器状态影响。工具部分提及 DOM Invader、postMessage-tracker、Burp Collaborator、interactsh、request-bin 等,但技能本身不保证这些工具的可用性或版本。具体收费、价格与平台信息暂未提供。