Files
reverse-skills-max/reverse-skill-repo/skills/field-journal/2026-07-18_gin-juice-client-friction.md

40 lines
1.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 现代 Web 靶场摩擦 → skill 加固
> 日期:2026-07-18
> 场景:合法公开靶场(PortSwigger 类 scanner-eval / OWASP Juice Shop demo)
> 脱敏:无真实业务域名利用细节
## 结论(给下次 Agent)
**未打穿 ≠ 包无效。** 必须交付:surface map、sink 列表、门闩原因、Evidence(observed|validated)。
失败要写进 timeline,并反哺 playbook。
## 踩坑
| 坑 | 现象 | 修复/纪律 |
|----|------|-----------|
| case-init 授权被污染 | `-AuthGranted` 后 status 变成奇怪字符串 | 仅允许 pending/granted/denied/unknown;`PSBoundParameters` 判断 AuthStatus |
| lab_only 不 ready | network=lab_only 时 ready_for_act 假 | lab_only + granted + assets → ready |
| Windows curl `[]` | `bad range in position` | **必须** `curl.exe --globoff` |
| append-evidence 特殊字符 | RawExcerpt 含引号/XML 报错 | block 缩进 + 去控制字符 |
| 公网 demo 503 | Juice Shop Heroku 挂 | 换本地 Docker 或其它合法靶;勿死磕 |
| DOM XSS 假阳性 | 有 innerHTML sink 就报 validated | 需 200 非数字 body 才可 exploit;否则 observed |
| agent-browser ref 过期 | click 失败 | 页面变化后重新 snapshot |
## 可复用模式
1. Surface → Sink → Chain(见 `pentest-tools/references/client-side-lab-playbook.md`)
2. 库存类 `innerHTML = fetchBody`:先证 sink,再找 200 非数字
3. 静态 rg sink + agent-browser eval 双证
## 工具链
- case-init / case-guard / append-evidence / smoke
- agent-browser(CDP)
- curl --globoff
## 环境
- Windows + PowerShell 5.1
- Docker Desktop 可能 daemon 未就绪