Skip to content

Documentation & Reporting

Finding the vuln is only half the job
If you can't communicate what you found and how to fix it , your work has zero value

Translation of technical findings into actionable business intelligence — that's the difference between a report that gets read and one that gets filed in /dev/null

Report Structure

Every finding follows this structure — consistent , repeatable , useful

1. Executive Summary

High-level overview for people who sign checks

  • Business impact in plain language
  • Risk level (Critical / High / Medium / Low)
  • Number of findings by severity
  • Quick wins that can be fixed immediately

No technical jargon here
Your CTO needs to understand the risk without a comp sci degree

2. Technical Details

The actual meat for the engineers who have to fix this shit

  • Vulnerability type and CWE/CVE reference
  • Affected endpoints , versions , configurations
  • Step-by-step reproduction
  • Environment context (when discovered , what tools used)

3. Proof of Concept

Show , don't tell

# Example PoC format — commands that reproduce the finding
# Include exact requests , payloads , and output
curl -X POST https://target.com/api/auth \
  -H "Content-Type: application/json" \
  -d '{"username": "admin", "password": "admin123"}' \
  -v

# Response showing the 200 OK when it should be 401
< HTTP/1.1 200 OK
< {"token": "eyJhbGciOiJIUzI1NiIs..."}

4. Evidence

Screenshots , logs , timestamps — everything that proves the finding exists

# Screenshot organization
screenshots/
├── recon/
│   ├── subdomain-enumeration.png
│   └── open-ports.png
├── exploitation/
│   ├── sql-injection-proof.png
│   └── shell-access.png
└── reporting/
    └── cvss-calculator.png

5. Remediation

Don't just complain — offer solutions

  • Immediate — stop the bleeding (disable endpoint , rotate keys , block IP)
  • Short-term — patch , configure WAF rules , fix input validation
  • Long-term — architectural changes , security training , SDLC improvements

6. References

  • CVE numbers
  • OWASP categories
  • Vendor advisories
  • Related research

Remediation Guidance Categories

Priority Timeline Example
Critical 24-48 hours Active RCE , exposed credentials
High 1 week SQL injection , broken auth
Medium 1 month Missing security headers , verbose error messages
Low Next sprint Information disclosure , non-critical CSP issues

Ethical Disclosure

Responsible disclosure isn't optional

  • Set expectations — tell them when the report is coming
  • Give time — industry standard is 90-120 days for remediation
  • Coordinate — involve all affected parties
  • Professional always — no shaming , no public disclosure without consent
flowchart LR
    A[Discovery] --> B[Notify Vendor]
    B --> C{Acknowledged?}
    C -->|Yes| D[Provide Details]
    D --> E[Wait for Fix]
    E --> F{Timeline Met?}
    F -->|Yes| G[Public Disclosure]
    F -->|No| H[Coordinate Extension]
    H --> E
    C -->|No| I[Escalate]
    I --> J[CISA/CERT]
    J --> D

Tools for Report Generation

# Serpico — open source report generation
# Dradis — collaboration + reporting
# PwnDoc — pentest documentation with templates

# Markdown to PDF conversion
pandoc report.md -o report.pdf --from markdown --to pdf

# Template-based HTML report generation
# Never start from scratch — always use templates

What Makes a Good Report

  • Reproducible — anyone with the same access should be able to replicate
  • Prioritized — not every finding is P1 , and pretending it is dilutes the real criticals
  • Actionable — the fix should be clear enough that a junior dev can implement it
  • Honest — if you're not sure about something , say so Faking confidence burns credibility

Bad reports get ignored
Good reports get things fixed
Great reports get you rehired