sickn33/agentic-awesome-skills/evidence-hygiene
Claude Code and agent skill by sickn33/agentic-awesome-skills
- community
Checking that the SKILL.md file is still in the repository.
Evidence-capture and PoC-redaction discipline for bug-bounty submissions
Install
npx vskill@latest install sickn33/agentic-awesome-skills/evidence-hygieneSKILL.md
EVIDENCE HYGIENE — PoC Capture & Redaction Discipline
Use this skill BEFORE capturing any screenshot, exporting any HAR, or attaching any evidence to a bug-bounty submission. It catches the most common evidence-hygiene mistakes that cause cookies to leak, PII to be shared without consent, or screenshots to be unsuitable for triage.
The core principle: Bug-bounty evidence is meant to convince a triager. Anything beyond that — live cookies, real-user PII, internal trace IDs that aren't useful — should not be in the evidence.
1. Sensitive Data Categories of Sensitive Data
Every PoC artifact (screenshot, HAR, raw HTTP request, terminal transcript) potentially contains data that needs different treatment.
| Category | Examples | Treatment | |
|---|---|---|---|
| Your-account secrets | Session cookies, OAuth tokens, refresh tokens, API keys | Always redact. Even in private bug-bounty platform attachments. Your account, your session — protect it. | |
| Other users' PII | Real names, emails, phone numbers, addresses, profile photos, account IDs | Redact unless explicitly demonstrating cross-account impact. Even then, mask faces and minimize the data you display. | |
| Triager-useful metadata | Trace IDs (x-datadog-trace-id), request IDs, server timestamps, your test account UID/email, GraphQL operation names, response shapes | Review and minimize — selected nonsecret values help the triager correlate to logs and reproduce. | |
| Test-account passwords (limited use) | Throwaway passwords on a test account (e.g., Testing@5678) | Redact passwords before sharing, including throwaway accounts. Rotate/revoke any exposed value; do not rely on later rotation to justify disclosure. |
2. Cookie Redaction Protocol
2.1 What must be masked
The session cookie value is the highest-value secret in any PoC. Mask:
- The session cookie (
authn,session,sid,__Secure-id, etc. — name varies per target) csrf-tokenif it's bound to your sessionAuthorizationheaders (Bearer tokens, JWT)Cookierequest header values for any session-bearing cookieSet-Cookieresponse header values for any session-bearing cookie
2.2 What's safe to leave visible
- Cookie NAMES and attributes can remain; redact all cookie values by default, including bot-management and analytics identifiers
- Analytics ID names, with values masked unless needed and approved
- Trace correlation IDs (
x-datadog-trace-id,x-request-id) - Server / framework headers (
Server: cloudflare,X-Frame-Options) - Your test account email/UID (per Bugcrowdninja alias section in
bugcrowd-reporting)
2.3 Redaction methods (ranked by practicality)
Method A — Don't capture the cookies in the first place (preferred when possible)
- For DevTools Console PoCs: use
credentials: 'include'so the browser sends cookies automatically. Console output won't echo the cookie. Screenshot the Console output, never the Network tab Headers panel. - For Burp Repeater PoCs: drag the bottom request/response panel divider DOWN to hide the request body before screenshotting. Capture only the Results table for Intruder runs.
Method B — Destructive redaction on a flattened copy (when capture includes cookies)
- An editable rectangle overlay may be removable. Export a new flattened raster, strip metadata, reopen it and verify pixels/OCR at full resolution; never attach the editable original.
- macOS: Open screenshot in Preview → Tools → Annotate → Rectangle → set fill color to black → drag rectangle over the cookie value → save
- Windows: Use Snip & Sketch's annotation tools or any image editor (Paint.NET, etc.)
- Redact a COPY of captured evidence offline; do not alter live Proxy Match and Replace rules merely to sanitize a screenshot, since they can change requests and invalidate reproduction.
Method C — Find/replace in raw text (for HAR files, terminal transcripts)
- See §4 for the jq commands
2.4 Pre-screenshot checklist
Before clicking Capture:
After capturing:
3. PII Black-Bar Protocol
When a PoC necessarily exposes another user's data (e.g., demonstrating IDOR by showing the victim's email in an attacker-session response), redact the actual PII even in private attachments.
3.1 What to mask (other-user data)
- First name, last name (full or partial)
- Email address (mask the local part; can leave domain if non-identifying)
- Phone number (mask the last 7 digits, optionally leave country code)
- Physical address (mask everything below city)
- Date of birth (mask the year, optionally the month)
- Government IDs (SSN, passport — mask everything)
- Profile photos / face images (black-bar the face entirely)
- Account IDs that the user could correlate to public profiles
3.2 What to leave visible (proves the bug, not the user)
- The fact that the field was returned (the JSON key name)
- The shape / type of the field (
"first_name": "<REDACTED>") - Your own (attacker session's) UID / email — this proves cross-account
- The endpoint URL and request method
- The trace ID
3.3 Worked example — IDOR PoC body
Bad (leaks victim's full PII):
Good (proves the bug, masks the PII):
In screenshot form, black-bar each value with a rectangle annotation labeled "REAL PII REDACTED" if there's space.
3.4 In the report body
Reference the redaction explicitly:
This signals the triager that you're disciplined and gives them a clear path to the unredacted version if they need it for verification.
4. HAR File Sanitization
HAR (HTTP Archive) files are JSON dumps of network traffic with full request/response bodies and headers. They include cookies, auth tokens, and any PII that was in transit.
4.1 Generate the HAR
Chrome DevTools → Network tab → right-click anywhere in the request list → "Save all as HAR with content"
4.2 Sanitize before attaching
Use jq to strip sensitive headers. Save this as a shell function or one-liner you can re-use:
Usage:
4.3 Verify before attaching
A header-only filter does not sanitize HAR: credentials/PII can occur in URLs, queryString, postData, response bodies (including base64), cookies and extensions. Prefer a minimal allowlisted extract. If a full HAR is essential, review every retained field offline with a schema-aware tool and approved redaction list; scan for known secret fingerprints without printing their values. Keep originals in an encrypted restricted store with a defined retention window and disclose only the minimum separately approved evidence. Regex replacement alone cannot certify it.
5. Burp Suite Screenshot Hygiene
5.1 Repeater (single request demo)
- In the Repeater request panel, the Cookie header is on its own line — drag the panel divider DOWN to hide everything below the request line / target line
- Or: temporarily delete the Cookie header text from the Repeater pane (it doesn't affect the original captured request) before screenshotting, then restore
- Capture only the response panel (right side) showing the JSON / HTML response that demonstrates the bug
5.2 Intruder Results table (rate-limit / brute-force demos)
The Results window is the strongest evidence for rate-limit findings. To capture cleanly:
- After the attack finishes, drag the horizontal divider between the Results table and the Request/Response panels DOWN, until only the Results table is visible
- Screenshot only the columns:
Request#,Payload,Status code,Response received,Length - Don't include the Request / Response sub-panels — they contain the cookie
5.3 Proxy HTTP history (capture demo)
Almost never the right screenshot — it shows entire request/response pairs with cookies. Use Repeater for demos instead.
5.4 Scanner findings (if applicable)
The Scanner tab's Issues panel may contain sensitive URLs/evidence; inspect it before screenshotting — it shows finding summaries without the underlying request bodies. Click into a specific finding before screenshotting only if you've redacted its evidence first.
6. Chrome DevTools Console PoC Patterns
6.1 The clean-PoC pattern
Why this is clean:
credentials: 'include'means the browser sends cookies. Your code never references them. They never appear in screenshots.console.log("LABEL:", ...)produces a labeled output line you can search for in the screenshot- Log only explicitly allowlisted nonsecret fields; automatic JSON dumps can expose credentials and PII
6.2 Multi-step PoCs (clear console between calls)
For a 4-step PoC (verify before / change / verify after / revert), clear the console between calls so each screenshot only shows ONE call and ONE response:
- Mac:
Cmd+K - Windows / Linux:
Ctrl+L
Take the screenshot immediately after the response prints — don't wait for unrelated framework warnings to appear.
6.3 Long responses (truncate for screenshot)
If the response body is too long for a clean screenshot, log a summary instead:
6.4 Console execution boundary
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/evidence-hygiene/SKILL.md
Popularity
- Repository stars
- 47,054
- Repository forks
- 6,853
- 7-day trend score
- 54
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/sickn33/agentic-awesome-skills/evidence-hygiene)