Repository navigation
v1.2.0 — 浏览器截图证据链
新能力:pentest_shot 浏览器截图证据链
挖到漏洞后过代理截图,产出「截图 + 原始请求包 + 可复现脚本」三件套——报告有图有真相,不再是纯文本。
Playwright(本机 Chrome, headless=new) --proxy--> mitmproxy :8081 --upstream--> Burp :8080 --> 目标
└─ 携带 X-Pentest-Evidence: <runId> └─ 按 runId 落原始请求/响应(索引 + HAR)
工具
pentest_shot({ url, findingId?, label?, steps?, fullPage?, headers?, cookies?, proxy? })steps支持goto/fill/click/press/waitForSelector/wait/screenshot/hover/select/evaluate- 自动拉起 mitmproxy 代理链(已在跑则不重复启动),上游默认转发 Burp(
PENTEST_SHOT_UPSTREAM可改/置空直连) - 返回
evidence数组,原样传给pentest_add_finding/pentest_submit
证据与呈现
- 产出落
$DSH_HOME/storages/evidence/<findingId>/:.png+.http(原始请求/响应)+.shot.mjs(可复现 Playwright 脚本) - 记录层
finding.evidence[]贯通投影/存储/报告,报告 Markdown 自动嵌图 - Web 漏洞 tab 新增证据墙(缩略图 → 点击放大);只读路由
GET /api/pipadeep-pentest/evidence?path=…(限证据目录,防越权)
依赖(本机)
npm i -g playwright(+ Chrome)、brew install mitmproxy;缺失时工具返回明确报错。
测试
npm test:lossless-JSON 契约(覆盖 evidence)+pentest_shot端到端集成(截图 + 原始包 + 脚本)7/7 通过- 实测:勾选 finding.evidence → 投影 → Web 证据墙缩略图实际加载(1440px);越权读
/etc/passwd返回 403