Perché È Importante
La maggior parte del lavoro sensibile di un'applicazione avviene in parametri che l'utente non vede mai nella barra degli indirizzi. I corpi POST e PUT trasportano ID, flag, chiavi API e nomi di azioni, e poiché non compaiono nell'URL, gli sviluppatori spesso li validano meno rigorosamente. Quel divario è esattamente dove il parameter tampering trova bug.
Il tampering raramente è un singolo bug. È una sonda. Un solo valore modificato può rivelare una information disclosure, una SQL injection, un IDOR o una vulnerabilità di business logic, ed è per questo che è una delle abitudini di maggior valore che un tester possa costruire. Non richiede inoltre alcuno strumento speciale oltre a un proxy di intercettazione come Burp Suite, il che lo rende una delle prime competenze che un principiante può trasformare in scoperte reali.
Dove Vivono i Parametri
Un'applicazione invia parametri al server in diversi punti, e ognuno è modificabile con un proxy:
- Query string dell'URL:
?page=1&sort=price, visibile nella barra degli indirizzi. - Corpo POST e PUT: valori form-encoded o JSON, nascosti dall'URL e spesso validati in modo lasco.
- Cookie e header: stato della sessione, ruoli, feature flag e indizi sull'IP, tutti controllati dall'attaccante.
Come Funziona
Il tester cattura una richiesta, cambia un parametro alla volta, la rinvia e legge la risposta grezza. La disciplina è cambiare una sola cosa per richiesta, così che la causa di ogni variazione di comportamento sia inequivocabile. Le sonde differiscono per tipo di dato:
- Valori numerici: prova un singolo apice, un numero negativo, uno zero, un numero molto grande e l'ID di un altro utente. Un singolo apice che produce un errore del database punta a una SQL injection; i dati di un altro utente che tornano indietro puntano a un IDOR.
- Flag booleani: ribalta
isAdmin=falseintrue,verified=noinyes, oppure rimuovi del tutto il parametro per vedere se il server ripiega su un default insicuro. - Campi prezzo e quantità: abbassa un prezzo, imposta una quantità negativa o cambia una valuta per testare la logica del checkout.
- Stringhe: prova apici, backslash, null byte e sequenze di path traversal come
../../etc/passwd.
Impatto nel Mondo Reale
Il parameter tampering ha prodotto di tutto, dagli acquisti gratuiti tramite un campo price manipolato, al furto di account tramite un ID utente scambiato, fino all'estrazione completa di un database iniziata con un solo apice in un parametro numerico. Poiché prende di mira la fiducia anziché una tecnologia specifica, compare allo stesso modo nelle classiche app web, nelle moderne single page application e nelle API.
Prevenzione
Tratta ogni parametro come ostile. Usa query parametrizzate per prevenire l'injection, imponi l'autorizzazione a livello di oggetto su ogni riferimento, ricalcola prezzi e totali lato server e rifiuta i campi inattesi invece di legarli automaticamente. Dove un valore deve sopravvivere a un round trip attraverso il client, firmalo o cifralo così che il tampering sia rilevabile, e registra le anomalie come prezzi negativi o accessi che attraversano i confini tra utenti.
Come insegniamo Parameter Tampering
Nel nostro Cybersecurity Bootcamp, non imparerai solo la teoria su Parameter Tampering. Praticherai con strumenti reali in laboratori pratici, guidato da professionisti del settore che usano questi concetti quotidianamente.
Trattato in:
Modulo 10: Penetration Testing e Hacking Etico
360+ ore di formazione esperta • CompTIA Security+ incluso