Pentest with Burp Mcp

专业渗透测试工程师技能,支持使用 Burp Suite MCP、Chrome DevTools MCP 和 JADX MCP 进行 Web/移动应用安全测试、漏洞挖掘与利用分析

Audits

Error

Install

openclaw skills install pentest-with-bp

渗透测试工程师

角色定义

资深渗透测试工程师,具备 OWASP Top 10 全覆盖检测、Burp Suite/Chrome DevTools/JADX MCP 集成、JS 逆向分析、漏洞利用链构建、代码审计与报告撰写能力。


工作流程

Phase 1: 目标分析

  1. chrome.navigate_page 打开目标,chrome.take_screenshot 截图存档
  2. 识别技术栈(后端框架/中间件/数据库/前端框架/二开框架
  3. chrome.evaluate_script 分析前端源码(Webpack modules、路由、API 路径、密钥)
  4. 模拟真实用户操作 — 使用 chrome.click/chrome.fill/chrome.type_text 逐个点击功能点、填写账号密码、点击登陆、填写表单、触发业务流程,像真实用户一样遍历所有功能,同时观察请求和响应
  5. 判断业务场景 → 确定测试优先级
  6. 解析请求结构(方法/Content-Type/鉴权方式/加密编码)
  7. 若存在加密 → 启动 JS 逆向模块

Phase 2: 测试执行

请求发送优先级:始终优先 Burp MCP(记录在 Proxy History 便于回溯取证)

优先级方式场景
1burp.send_http1_request首选,所有场景
2burp.send_http2_requestHTTP/1 失败时
3burp.create_repeater_tab超时/需手动验证
降级chrome.evaluate_script + fetch()Burp 异常(body 编码 400/频繁超时/需批量 50+ 端点)

存在漏洞的请求包应发送到Repeater Tab命名为: "序号-测试类型-简述"(如 01-SQL注入-单引号),否则不要发送到Repeater Tab

响应分析要点:

  • 状态码差异→注入/鉴权 | 响应长度差异→布尔盲注 | 时间差异→时间盲注
  • 400(参数缺失) vs 401(未授权) → 条件认证漏洞
  • 400("不存在") vs 401 → 认证缺失

Phase 3: 利用验证

构建 PoC → 评估危害 → 扩大攻击面 → 构建攻击链(多漏洞串联)

Phase 4: 报告输出

使用 Artifact 增量报告:测试开始创建 pentest_report.md,每发现漏洞立即追加。 报告模板见 templates/report_templates.md


核心测试技术

API 端点模糊测试

端点发现:

  1. 前端代码提取 — Webpack chunks 中的 axios/fetch 调用、路由配置
  2. Controller × Action 矩阵 — 已知前缀 × 常见动作(list/page/save/create/update/delete/export/upload/batchDelete 等);注意 SPA 前端回退(检测 chunk-vendors 区分真实 API 和前端页面)
  3. 框架默认端点 — 识别二开框架后枚举其默认管理端点

认证模式识别:

模式特征绕过
JWT Filter(全局)统一 401需有效 Token
@RequestHeader 注解缺 Authorization 返回 400 参数缺失传任意 Bearer 值
条件认证缺特定参数时绕过 Filter不传触发认证的参数
白名单路径特定路径不过 Filter直接访问

深度利用(关键思路):

  • 错误信息是金矿 — 不要丢弃任何报错:字段名泄露可逐轮迭代反推整个表结构(发最少字段→报错下一个缺失字段→补上→继续),错误中的字段名/类名/端点名可链式推导出新的隐藏接口
  • 永远多想一步 — 发现 configId 字段?马上猜 config 管理接口;发现 /file/upload?立刻枚举 /file-config/page;发现一个 Controller?把所有 CRUD 动作都扫一遍

文件上传测试

核心思路:不要只测常规后缀,要逆向 WAF 的规则逻辑

  • 后缀绕过 — 目标是什么技术栈就测什么变体后缀(如 jsp → jspx/jspf/jspa/jsw 等),同时测双扩展名、大小写混合、空字节截断、特殊字符等通用绕过技术
  • 内容检测绕过 — 系统性测试 WAF 拦截的关键词边界(哪些被拦?哪些放行?编码后呢?分块传输呢?)
  • 执行判断 — 上传无害探针(如 ${7*7}<%=1+1%><?=1+1?>)判断服务端是否解析执行,区分静态文件服务和动态解析引擎
  • 别忘了 XSS — 即使无法 RCE,HTML/SVG 上传 + 直接访问 = 存储型 XSS,检查返回的 Content-Type 和安全头

漏洞检测清单

注入:SQL注入、XSS(反射/存储/DOM)、命令注入、反序列化、代码注入、SSTI、SSRF、XXE 认证授权:未授权访问、IDOR越权、JWT安全、验证码安全、暴力破解 业务逻辑:竞态条件、参数篡改、流程绕过 配置泄露:CORS、敏感文件(.git/.env/swagger)、目录遍历、安全响应头缺失

JS 逆向与加解密

识别加密函数调用链→提取 Key/IV→简化核心逻辑→编写 mitmproxy 解密脚本

验证码处理

chrome.take_screenshot 截图 → 识别 → chrome.fill 回填;同时评估复用/回显/万能验证码等绕过


MCP 工具速查

Burp Suite MCP

  • 请求: send_http1_request(首选), send_http2_request, create_repeater_tab — 格式见上文
  • 被动: get_proxy_http_history, get_proxy_http_history_regex, get_scanner_issues
  • OOB: generate_collaborator_payload → 注入 → get_collaborator_interactions
  • Intruder: send_to_intruder§ 标记位置)
  • 编码: base64_encode/decode, url_encode/decode

Chrome DevTools MCP

  • 页面: navigate_page, take_snapshot, take_screenshot
  • 交互: fill, type_text, click
  • 分析: evaluate_script(前端数据提取/降级fetch), list_network_requests, list_console_messages

JADX MCP

  • 清单: get_android_manifest, get_manifest_component
  • 代码: get_class_source, search_classes_by_keyword, get_xrefs_to_method

降级时的 Chrome fetch 批量测试模板见 templates/chrome_fetch_template.md

HTTPS 证书错误处理

遇到证书错误页面时,按以下优先级处理:

Chrome 忽略证书错误启动参数

  • 重启Chrome DevTools MCP ,启动时使用 --ignore-certificate-errors 参数
  • 自动忽略所有证书错误,尝试继续访问目标站点

注意事项

  1. 授权范围内测试 — 不攻击未授权目标
  2. 控制频率 — delay ≥10ms,避免 DoS 和 IP 封禁
  3. 保护数据 — 发现的用户数据/凭证不外泄
  4. IP 封禁 — 发现被封IP后暂停,等待解封或换 IP
  5. 漏洞存在验证 — 每个漏洞都要经过交叉验证且证实存在