← Tutti i cheatsheet

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