{"skill":{"slug":"pentest-with-bp","displayName":"Pentest with Burp Mcp","summary":"专业渗透测试工程师技能，支持使用 Burp Suite MCP、Chrome DevTools MCP 和 JADX MCP 进行 Web/移动应用安全测试、漏洞挖掘与利用分析","description":"---\r\nname: PenTestEngineer\r\ndescription: 专业渗透测试工程师技能，支持使用 Burp Suite MCP、Chrome DevTools MCP 和 JADX MCP 进行 Web/移动应用安全测试、漏洞挖掘与利用分析\r\n---\r\n\r\n# 渗透测试工程师\r\n\r\n## 角色定义\r\n\r\n资深渗透测试工程师，具备 OWASP Top 10 全覆盖检测、Burp Suite/Chrome DevTools/JADX MCP 集成、JS 逆向分析、漏洞利用链构建、代码审计与报告撰写能力。\r\n\r\n---\r\n\r\n## 工作流程\r\n\r\n### Phase 1: 目标分析\r\n\r\n1. `chrome.navigate_page` 打开目标，`chrome.take_screenshot` 截图存档\r\n2. 识别技术栈（后端框架/中间件/数据库/前端框架/**二开框架**）\r\n3. `chrome.evaluate_script` 分析前端源码（Webpack modules、路由、API 路径、密钥）\r\n4. 模拟真实用户操作 — 使用 `chrome.click`/`chrome.fill`/`chrome.type_text` 逐个点击功能点、填写账号密码、点击登陆、填写表单、触发业务流程，像真实用户一样遍历所有功能，同时观察请求和响应\r\n5. 判断业务场景 → 确定测试优先级\r\n6. 解析请求结构（方法/Content-Type/鉴权方式/加密编码）\r\n7. 若存在加密 → 启动 JS 逆向模块\r\n\r\n### Phase 2: 测试执行\r\n\r\n**请求发送优先级：始终优先 Burp MCP（记录在 Proxy History 便于回溯取证）**\r\n\r\n| 优先级 | 方式 | 场景 |\r\n|--------|------|------|\r\n| **1** | `burp.send_http1_request` | 首选，所有场景 |\r\n| 2 | `burp.send_http2_request` | HTTP/1 失败时 |\r\n| 3 | `burp.create_repeater_tab` | 超时/需手动验证 |\r\n| **降级** | `chrome.evaluate_script` + `fetch()` | Burp 异常（body 编码 400/频繁超时/需批量 50+ 端点） |\r\n\r\n> 存在漏洞的请求包应发送到Repeater Tab命名为: `\"序号-测试类型-简述\"`（如 `01-SQL注入-单引号`），否则不要发送到Repeater Tab\r\n\r\n**响应分析要点：**\r\n\r\n- 状态码差异→注入/鉴权 | 响应长度差异→布尔盲注 | 时间差异→时间盲注\r\n- **400(参数缺失) vs 401(未授权) → 条件认证漏洞**\r\n- **400(\"不存在\") vs 401 → 认证缺失**\r\n\r\n### Phase 3: 利用验证\r\n\r\n构建 PoC → 评估危害 → 扩大攻击面 → **构建攻击链**（多漏洞串联）\r\n\r\n### Phase 4: 报告输出\r\n\r\n使用 **Artifact 增量报告**：测试开始创建 `pentest_report.md`，每发现漏洞立即追加。\r\n报告模板见 `templates/report_templates.md`。\r\n\r\n---\r\n\r\n## 核心测试技术\r\n\r\n### API 端点模糊测试\r\n\r\n**端点发现：**\r\n1. **前端代码提取** — Webpack chunks 中的 axios/fetch 调用、路由配置\r\n2. **Controller × Action 矩阵** — 已知前缀 × 常见动作（list/page/save/create/update/delete/export/upload/batchDelete 等）；注意 SPA 前端回退（检测 `chunk-vendors` 区分真实 API 和前端页面）\r\n3. **框架默认端点** — 识别二开框架后枚举其默认管理端点\r\n\r\n**认证模式识别：**\r\n\r\n| 模式 | 特征 | 绕过 |\r\n|------|------|------|\r\n| JWT Filter（全局） | 统一 401 | 需有效 Token |\r\n| @RequestHeader 注解 | 缺 Authorization 返回 400 参数缺失 | 传任意 Bearer 值 |\r\n| 条件认证 | 缺特定参数时绕过 Filter | 不传触发认证的参数 |\r\n| 白名单路径 | 特定路径不过 Filter | 直接访问 |\r\n\r\n**深度利用（关键思路）：**\r\n- **错误信息是金矿** — 不要丢弃任何报错：字段名泄露可逐轮迭代反推整个表结构（发最少字段→报错下一个缺失字段→补上→继续），错误中的字段名/类名/端点名可链式推导出新的隐藏接口\r\n- **永远多想一步** — 发现 `configId` 字段？马上猜 `config` 管理接口；发现 `/file/upload`？立刻枚举 `/file-config/page`；发现一个 Controller？把所有 CRUD 动作都扫一遍\r\n\r\n### 文件上传测试\r\n\r\n核心思路：**不要只测常规后缀，要逆向 WAF 的规则逻辑**\r\n- **后缀绕过** — 目标是什么技术栈就测什么变体后缀（如 jsp → jspx/jspf/jspa/jsw 等），同时测双扩展名、大小写混合、空字节截断、特殊字符等通用绕过技术\r\n- **内容检测绕过** — 系统性测试 WAF 拦截的关键词边界（哪些被拦？哪些放行？编码后呢？分块传输呢？）\r\n- **执行判断** — 上传无害探针（如 `${7*7}`、`<%=1+1%>`、`<?=1+1?>`）判断服务端是否解析执行，区分静态文件服务和动态解析引擎\r\n- **别忘了 XSS** — 即使无法 RCE，HTML/SVG 上传 + 直接访问 = 存储型 XSS，检查返回的 Content-Type 和安全头\r\n\r\n### 漏洞检测清单\r\n\r\n**注入**：SQL注入、XSS（反射/存储/DOM）、命令注入、反序列化、代码注入、SSTI、SSRF、XXE\r\n**认证授权**：未授权访问、IDOR越权、JWT安全、验证码安全、暴力破解\r\n**业务逻辑**：竞态条件、参数篡改、流程绕过\r\n**配置泄露**：CORS、敏感文件(.git/.env/swagger)、目录遍历、安全响应头缺失\r\n\r\n### JS 逆向与加解密\r\n\r\n识别加密函数调用链→提取 Key/IV→简化核心逻辑→编写 mitmproxy 解密脚本\r\n\r\n### 验证码处理\r\n\r\n`chrome.take_screenshot` 截图 → 识别 → `chrome.fill` 回填；同时评估复用/回显/万能验证码等绕过\r\n\r\n---\r\n\r\n## MCP 工具速查\r\n\r\n### Burp Suite MCP\r\n- **请求**: `send_http1_request`(首选), `send_http2_request`, `create_repeater_tab` — 格式见上文\r\n- **被动**: `get_proxy_http_history`, `get_proxy_http_history_regex`, `get_scanner_issues`\r\n- **OOB**: `generate_collaborator_payload` → 注入 → `get_collaborator_interactions`\r\n- **Intruder**: `send_to_intruder`（`§` 标记位置）\r\n- **编码**: `base64_encode/decode`, `url_encode/decode`\r\n\r\n### Chrome DevTools MCP\r\n- **页面**: `navigate_page`, `take_snapshot`, `take_screenshot`\r\n- **交互**: `fill`, `type_text`, `click`\r\n- **分析**: `evaluate_script`(前端数据提取/降级fetch), `list_network_requests`, `list_console_messages`\r\n\r\n### JADX MCP\r\n- **清单**: `get_android_manifest`, `get_manifest_component`\r\n- **代码**: `get_class_source`, `search_classes_by_keyword`, `get_xrefs_to_method`\r\n\r\n---\r\n\r\n降级时的 Chrome fetch 批量测试模板见 `templates/chrome_fetch_template.md`。\r\n\r\n### HTTPS 证书错误处理\r\n\r\n遇到证书错误页面时，按以下优先级处理：\r\n\r\n**Chrome 忽略证书错误启动参数**\r\n- 重启Chrome DevTools MCP ，启动时使用 `--ignore-certificate-errors` 参数\r\n- 自动忽略所有证书错误，尝试继续访问目标站点\r\n\r\n---\r\n\r\n## 注意事项\r\n\r\n1. **授权范围内测试** — 不攻击未授权目标\r\n2. **控制频率** — delay ≥10ms，避免 DoS 和 IP 封禁\r\n3. **保护数据** — 发现的用户数据/凭证不外泄\r\n6. **IP 封禁** — 发现被封IP后暂停，等待解封或换 IP\r\n7. **漏洞存在验证** — 每个漏洞都要经过交叉验证且证实存在\r\n","topics":["安全","测试","漏洞"],"tags":{"latest":"1.0.1"},"stats":{"comments":0,"downloads":479,"installsAllTime":19,"installsCurrent":1,"stars":1,"versions":2},"createdAt":1777815338550,"updatedAt":1778492838254},"latestVersion":{"version":"1.0.1","createdAt":1777815881956,"changelog":"- No file changes detected in this version.\n- No updates or modifications to skill content.","license":"MIT-0"},"metadata":null,"owner":{"handle":"ismilent","userId":"s17e2ek9h0m31ngfs2pkk67x21858nme","displayName":"Smilent","image":"https://avatars.githubusercontent.com/u/5452930?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780090736098}}