eWPT · Reporting Notes
Vulnerability Report Template
Difficoltà: Beginner Time to Master: 1h Prerequisiti: aver completato almeno una vulnerabilità end-to-end Lab: riferimento trasversale
Obiettivo
Trovare la vulnerabilità è solo metà del lavoro: se poi la scrivi in due righe confuse senza passi di riproduzione chiari, in eWPT (e in un report vero) conta come se non l’avessi trovata. Questo è il template che riusi per ogni singolo finding, così anche a fine giornata con dieci vulnerabilità trovate non perdi la disciplina di documentarle tutte allo stesso livello.
Template
## [ID-001] Titolo della vulnerabilità (es. SQL Injection in parametro 'id')
**Severità:** Critical | High | Medium | Low | Info
**CVSS Score:** X.X (vedi CVSS-Scoring.md)
**Categoria OWASP:** es. A03:2021 - Injection
### Descrizione
Spiegazione tecnica della vulnerabilità: dove si trova, come funziona, perché esiste.
### Impatto
Cosa può fare un attaccante sfruttando questa vulnerabilità (lettura dati, RCE, account takeover, ecc.)
### Passi per la riproduzione
1. Naviga su http://target.com/pagina
2. Invia la seguente richiesta:
GET /search?q=’ OR 1=1– HTTP/1.1 Host: target.com
3. Osserva che la risposta contiene [risultato inatteso]
### Evidenza (Proof of Concept)
- Screenshot / request-response raw
- Comando esatto usato
### Remediation
Raccomandazione tecnica specifica per correggere la vulnerabilità (es. "usare query parametrizzate/prepared statement invece di concatenazione stringhe").
### Riferimenti
- [OWASP link pertinente]
- [CWE-XX]
Esempio compilato
## [WEB-003] SQL Injection in parametro 'category' (Blind Boolean-Based)
**Severità:** Critical
**CVSS Score:** 9.8
**Categoria OWASP:** A03:2021 - Injection
### Descrizione
Il parametro `category` nell'endpoint `/products?category=X` non sanitizza l'input prima di
costruire la query SQL, permettendo l'iniezione di condizioni booleane arbitrarie.
### Impatto
Un attaccante può estrarre l'intero contenuto del database (credenziali utenti, dati di
pagamento) senza autenticazione, tramite tecnica blind boolean-based.
### Passi per la riproduzione
1. GET /products?category=Gifts' AND '1'='1 -> risultati normali
2. GET /products?category=Gifts' AND '1'='2 -> nessun risultato
### Evidenza
Vedi screenshot allegato `poc-sqli-category.png` e richiesta raw in `request-001.txt`.
### Remediation
Sostituire la concatenazione di stringhe con query parametrizzate (prepared statement).
Applicare inoltre validazione input lato server con whitelist dei valori category ammessi.
### Riferimenti
- OWASP A03:2021 - Injection
- CWE-89: SQL Injection
Connessioni
- Combinazione con: CVSS-Scoring.md, Report-Checklist.md