6.8 KiB
Inquinamento dei Parametri
Impara l'hacking su AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri La Famiglia PEASS, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR a HackTricks e HackTricks Cloud repos di github.
{% embed url="https://websec.nl/" %}
Panoramica sull'Inquinamento dei Parametri HTTP (HPP)
L'Inquinamento dei Parametri HTTP (HPP) è una tecnica in cui gli attaccanti manipolano i parametri HTTP per modificare il comportamento di un'applicazione web in modi non intenzionali. Questa manipolazione avviene aggiungendo, modificando o duplicando i parametri HTTP. L'effetto di queste manipolazioni non è direttamente visibile all'utente ma può alterare significativamente la funzionalità dell'applicazione sul lato server, con impatti osservabili sul lato client.
Esempio di Inquinamento dei Parametri HTTP (HPP)
Un URL di transazione dell'applicazione bancaria:
- URL Originale:
https://www.victim.com/send/?from=accountA&to=accountB&amount=10000
Inserendo un parametro from
aggiuntivo:
- URL Manipolato:
https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC
La transazione potrebbe essere erroneamente addebitata a accountC
invece di accountA
, mostrando il potenziale dell'HPP nel manipolare transazioni o altre funzionalità come reset delle password, impostazioni 2FA o richieste di chiavi API.
Analisi dei Parametri Specifici della Tecnologia
- Il modo in cui i parametri vengono analizzati e prioritizzati dipende dalla tecnologia web sottostante, influenzando come HPP può essere sfruttato.
- Strumenti come Wappalyzer aiutano a identificare queste tecnologie e i loro comportamenti di analisi.
Sfruttamento di PHP e HPP
Caso di Manipolazione OTP:
- Contesto: Un meccanismo di accesso che richiede un One-Time Password (OTP) è stato sfruttato.
- Metodo: Intercettando la richiesta OTP utilizzando strumenti come Burp Suite, gli attaccanti hanno duplicato il parametro
email
nella richiesta HTTP. - Risultato: L'OTP, destinato all'email iniziale, è invece stato inviato all'indirizzo email secondario specificato nella richiesta manipolata. Questa falla ha permesso l'accesso non autorizzato aggirando la misura di sicurezza prevista.
Questo scenario evidenzia una grave mancanza nell'infrastruttura dell'applicazione, che ha elaborato il primo parametro email
per la generazione dell'OTP ma ha utilizzato l'ultimo per la consegna.
Caso di Manipolazione della Chiave API:
- Scenario: Un'applicazione consente agli utenti di aggiornare la propria chiave API attraverso una pagina delle impostazioni del profilo.
- Vettore di Attacco: Un attaccante scopre che aggiungendo un parametro
api_key
aggiuntivo alla richiesta POST, può manipolare l'esito della funzione di aggiornamento della chiave API. - Tecnica: Utilizzando uno strumento come Burp Suite, l'attaccante crea una richiesta che include due parametri
api_key
: uno legittimo e uno maligno. Il server, elaborando solo l'ultima occorrenza, aggiorna la chiave API al valore fornito dall'attaccante. - Risultato: L'attaccante ottiene il controllo sulla funzionalità API della vittima, potenzialmente accedendo o modificando dati privati in modo non autorizzato.
Questo esempio sottolinea ulteriormente la necessità di gestire in modo sicuro i parametri, specialmente in funzionalità critiche come la gestione delle chiavi API.
Analisi dei Parametri: Flask vs. PHP
Il modo in cui le tecnologie web gestiscono i parametri HTTP duplicati varia, influenzando la loro suscettibilità agli attacchi HPP:
- Flask: Adotta il valore del primo parametro incontrato, come
a=1
in una stringa di querya=1&a=2
, dando priorità all'istanza iniziale rispetto ai duplicati successivi. - PHP (su Apache HTTP Server): Al contrario, dà priorità all'ultimo valore del parametro, optando per
a=2
nell'esempio dato. Questo comportamento può agevolare involontariamente gli exploit HPP onorando il parametro manipolato dell'attaccante rispetto all'originale.
Riferimenti
- https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654
- https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution
{% embed url="https://websec.nl/" %}
Impara l'hacking su AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri La Famiglia PEASS, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR a HackTricks e HackTricks Cloud repos di github.