用途:面向浏览器渲染界面或包含客户端 JavaScript 的应用,测试扫描器容易漏掉的展示层与 HTTP 通道问题,属于 FIND/EXPLOIT 类的客户端利用技能。核心思路是攻击客户端的信任与中间通道的假设:浏览器会执行页面指示的内容,代理与缓存会信任能干净解析的内容。
主要能力(攻击类别):DOM XSS——追踪客户端 JS 中 source(location、postMessage、storage)到 sink(innerHTML、eval);CSP 绕过——针对 unsafe-inline、通配符、JSONP/Angular gadget、缺失 base-uri 等弱策略;CORS 利用——服务端反射任意 Origin 且 Allow-Credentials: true 时可跨站窃取数据;postMessage 滥用——处理函数未校验 event.origin 并将数据送入 sink;原型污染——用户 JSON 被合并进 Object.prototype 形成 gadget,可链至 XSS/RCE/DoS;DOM clobbering——注入 id/name 覆盖 JS 变量或函数;点击劫持——敏感操作缺少 frame-ancestors/X-Frame-Options;Web 缓存投毒——未键控输入(如请求头)被反射并缓存后提供给其他用户;请求走私——前后端服务器间 CL.TE / TE.CL 解析不同步。检测与 PoC 配方见 references/client-attacks.md。
高价值且常被忽略的点:带凭据的 CORS 问题不在于 *,而在于反射攻击者 Origin 同时允许凭据;原型污染常源于库对攻击者 JSON 的深度合并,可经已知 gadget 链至 DOM XSS;请求走私影响最高(大规模会话窃取、缓存投毒、认证绕过),须谨慎测试。
适用与跳过:适用于提供浏览器渲染 UI 或客户端 JS 的应用;API-only、CLI、守护进程或无浏览器表面的后端服务不适用,应报告“client-side-exploitation: N/A — no frontend surface”并停止,不要强行套用浏览器测试。
授权与限制:仅限自有或已获授权的应用。请求走私与缓存投毒可能影响共享缓存/代理上的其他用户,只能在可控的隔离预发布环境测试。输出方面,每条发现需给出 source→sink(DOM/原型污染)或不同步/缓存机制、PoC 以及受影响对象(自身还是其他用户,后者显著提高严重性)。常见错误:止步于反射/存储型 XSS 而未追踪 DOM XSS;误以为 CORS 只有 * 才危险;因“难”而跳过请求走私;在共享基础设施上测试缓存投毒或走私。