SuperAPI AI 工具集

dangling-markup-injection

前端与建站

查看项目

更新于 10-15 21:53

技能介绍

用途:当存在 HTML 注入点、但 JavaScript 执行被阻断(CSP 禁止内联脚本与事件处理器、净化器剥离 script/onerror/onload、WAF 拦截已知 XSS 模式),且页面在注入点之后含有敏感数据(CSRF 令牌、预填表单值、隐藏字段中的会话标识、API 密钥、敏感用户内容)时,用悬空标记注入实现无需 JavaScript 的数据外带。核心思路:注入一个带 src、href、action 等属性且未闭合引号的标签,浏览器会把其后直到下一个匹配引号的整段页面内容当作属性值(URL)请求到攻击者服务器。

主要外带向量:img src(最常见,受 img-src 限制);form action 劫持(受 form-action 限制,可配合 textarea 吞噬后续 HTML);base href 劫持(改变后续相对 URL 解析,受 base-uri 限制);meta refresh 重定向;link stylesheet;table background(旧浏览器);video/audio poster。

浏览器差异:Chrome/Chromium 自 Chrome 60 起会阻断 URL 属性值含 < 或换行的 img src 悬空标记,但 form action、base、link 不受此限制;Firefox 对图片源更宽松;Safari、Edge 行为与 Chrome 相近。

限制:仅能捕获同一 HTTP 响应中注入点之后的内容;消费止于下一个匹配引号;严格 CSP 可阻断多数向量;被捕获内容中的 URL 不安全字符可能损坏。

可组合:开放重定向、缓存投毒(把反射型变为持久型)、CSRF(先窃取令牌再发起)、点击劫持。

用法:先判断注入上下文(属性值内需先闭合;标签内容内直接注入;script 块内需先闭合 script),再按 CSP 选择外带向量,注意引号类型选择与 Chrome 缓解措施的绕过,最后考虑缓存/存储放大。资料未提供安装命令、代码仓库结构或定价信息。