mcpField
P
pentest-client-advanced

pentest-client-advanced

github.com/jd-opensource安全31548 次安装28 周前更新
代码仓库

关于 pentest-client-advanced

用于测试 XSS 之外客户端攻击面的安全测试技能,覆盖六类 WSTG-CLNT 测试,并提供浏览器验证和构造概念验证的流程。

主要功能

  1. 01CORS 配置错误测试
  2. 02WebSocket 安全检查
  3. 03点击劫持评估
  4. 04检查 postMessage 来源与输入
  5. 05CSS 注入及客户端存储分析
  6. 06构造基于浏览器的攻击 PoC

适用场景

  1. 01测试跨域访问和 WebSocket 防护
  2. 02评估点击劫持与 postMessage 处理
  3. 03检查浏览器存储中的敏感数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jd-opensource/joysafeter --skill pentest-client-advanced

安装后在 Claude Code 中输入/pentest-client-advanced确认已加载。

附带文件references/tools.mdreferences/workflows.md

详细介绍

渗透测试客户端进阶

目的

测试 XSS 之外的高级客户端攻击面。Shannon 的流水线中仍有 6 项 WSTG-CLNT 测试未完成——这些是不同的攻击类别,需要采用不同于污点分析的方法。

先决条件

授权要求
  • 书面授权,且包含客户端测试范围
  • 测试域名,用于托管 PoC HTML 页面(攻击者控制的源)
  • 浏览器测试环境,并可访问开发者工具
  • 目标用户模拟——能够测试跨源交互
环境设置
  • 带开发者工具的现代浏览器(Chrome/Firefox)
  • Burp Suite,用于拦截 WebSocket 和跨源流量
  • 用于托管 PoC 页面的本地 HTTP 服务(python -m http.server)
  • Playwright,用于自动化验证基于浏览器的攻击

核心工作流

  1. CORS 配置错误:测试 ACAO 标头中反射的 Origin、null 源绕过、子域通配符滥用,以及通过跨源请求泄露凭据(WSTG-CLNT-07)。
  2. WebSocket 安全性:WS 升级时缺少身份验证、CSWSH(跨站 WebSocket 劫持)、通过 WS 消息注入,以及缺少源验证(WSTG-CLNT-10)。
  3. 点击劫持:缺少 X-Frame-Options / CSP frame-ancestors、UI 诱骗、拖放劫持、多步骤点击劫持链(WSTG-CLNT-09)。
  4. postMessage 滥用:消息处理器中缺少源验证、通过跨源消息操纵 DOM、通过 postMessage 进行原型污染(WSTG-CLNT-11)。
  5. CSS 注入:通过 CSS 属性选择器 + background-image 窃取数据、基于 CSS 的键盘记录、注入样式以操纵 UI(WSTG-CLNT-05)。
  6. 客户端存储:localStorage/sessionStorage 中的敏感数据、IndexedDB 暴露、Service Worker 缓存投毒(WSTG-CLNT-06)。
  7. PoC 构建:构建 HTML 页面,展示每种攻击的实际影响。

WSTG 覆盖范围

WSTG ID测试名称状态
WSTG-CLNT-05CSS 注入✅
WSTG-CLNT-06客户端资源操纵✅
WSTG-CLNT-07跨源资源共享✅
WSTG-CLNT-09点击劫持✅
WSTG-CLNT-10WebSocket 测试✅
WSTG-CLNT-11Web 消息传递✅

工具类别

类别工具用途
CORS 测试CORScanner、curl、自定义 PoC 页面检测 CORS 配置错误
WebSocketwebsocket-client (Python)、Burp WSWebSocket 劫持和注入
点击劫持自定义 HTML iframe、Playwright构建 UI 诱骗 PoC
浏览器自动化Playwright、Puppeteer自动化验证客户端攻击
存储分析浏览器开发者工具、自定义 JS检查 localStorage/IndexedDB

参考资料

  • references/tools.md - 工具函数签名和参数
  • references/workflows.md - 攻击模式定义和测试向量

评论

支持 Markdown