Web Security Finding Report Template
A structured template for documenting web application security findings. Use this as a guide when writing up what you discover during authorized testing. A clear finding explains what happened, why it matters, how to reproduce it, and how to fix it.
Sample Finding — Reflected XSS
A complete finding using a reflected cross-site scripting example.
Reflected Cross-Site Scripting (XSS) in Search Parameter
https://example-target.lab/search?q=[INPUT]
Reflected Cross-Site Scripting (XSS) — CWE-79
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
The q query parameter on the search endpoint reflects user-supplied input directly into the HTML response without output encoding. An attacker can craft a URL containing a script payload that executes in the victim's browser when the link is visited. No authentication is required to trigger the vulnerability.
- Open Burp Suite Community Edition and launch Burp's browser.
- Navigate to
https://example-target.lab/search. - Enter any search term and submit the form.
- In Burp's HTTP History, locate the GET request to
/search. - Send the request to Repeater.
- Replace the value of the
qparameter with<script>alert(document.domain)</script>. - Forward the request and observe the injected script executes in the browser response.
GET /search?q=%3Cscript%3Ealert%28document.domain%29%3C%2Fscript%3E HTTP/1.1 Host: example-target.lab User-Agent: Mozilla/5.0 Accept: text/html
<div class="results"> Results for: <script>alert(document.domain)</script> </div>
An attacker who sends a crafted URL to an authenticated user can execute arbitrary JavaScript in that user's browser under the application's origin. This can be used to steal session cookies, capture keystrokes, redirect users to phishing pages, or perform actions on the victim's behalf. The severity is elevated in applications where users are authenticated or where sensitive data is displayed.
Apply context-aware output encoding to all user-supplied input before rendering it in HTML responses. In most frameworks, use the built-in HTML escaping function (e.g., htmlspecialchars() in PHP, HtmlEncode() in .NET). Do not rely on input validation alone — encode output at the point of rendering. Implement a Content Security Policy (CSP) as a defense-in-depth measure.
[Your Name]
[YYYY-MM-DD]
PortSwigger Academy Lab (Authorized)
Open
Blank Finding Template
Copy this structure for each finding. Fill in each field based on what you observed.
2. Describe each action clearly enough that someone else can reproduce it.
3. Include the exact payload, parameter, or input used.
CVSS Severity Quick Reference
Use the NVD CVSS v3.1 Calculator to score your findings.
Score Ranges
| Score Range | Qualitative Label | What it typically means |
|---|---|---|
| 0.0 | None | No impact |
| 0.1 – 3.9 | Low | Limited scope, difficult to exploit, minimal impact |
| 4.0 – 6.9 | Medium | Meaningful impact, may require user interaction or specific conditions |
| 7.0 – 8.9 | High | Significant impact, often exploitable without authentication |
| 9.0 – 10.0 | Critical | Network-accessible, low complexity, high impact on confidentiality/integrity/availability |
Need help putting this into practice?
Aspect helps small and medium-sized businesses understand web application security risk through testing, reporting, and remediation guidance.