Inquinamento dei parametri HTTP - HTTP parameter pollution
HTTP |
---|
Metodi di richiesta |
Campi di intestazione |
Codici di stato di risposta |
Metodi di controllo dell'accesso di sicurezza |
Vulnerabilità di sicurezza |
L'inquinamento da parametri HTTP ( HPP ) è una vulnerabilità delle applicazioni Web sfruttata iniettando delimitatori di stringhe di query codificate in parametri già esistenti . La vulnerabilità si verifica se l'input dell'utente non viene disinfettato correttamente da un'applicazione web. Questa vulnerabilità consente l'inserimento di parametri negli URL creati da applicazioni Web. È stato presentato per la prima volta al pubblico nel 2009 da Stefano di Paola e Luca Carettoni, nella conferenza OWASP EU09 Polonia. L'impatto di tale vulnerabilità varia e può variare dal "semplice fastidio" alla completa interruzione del comportamento previsto di un'applicazione web. L'override dei parametri HTTP per alterare il comportamento di un'applicazione Web, bypassare i checkpoint di convalida dell'input e dell'accesso, nonché altre vulnerabilità indirette, sono possibili conseguenze di un attacco HPP.
Non esiste uno standard RFC su cosa dovrebbe essere fatto quando ha superato più parametri. L'HPP potrebbe essere utilizzato per l'inquinamento cross-channel, bypassando la protezione CSRF e i controlli di convalida dell'input WAF .
Comportamento
Quando ha passato più parametri con lo stesso nome, ecco come si comporta il backend.
Tecnologia | Risultato dell'analisi | Esempio |
---|---|---|
ASP.NET/IIS | Tutte le occorrenze concatenate con una virgola | param=val1,val2 |
ASP/IIS | Tutte le occorrenze concatenate con una virgola | param=val1,val2 |
PHP/Apache | Solo ultima occorrenza | param=val2 |
PHP/Zeus | Solo ultima occorrenza | param=val2 |
JSP, Servlet/Apache Tomcat | Solo prima occorrenza | param=val1 |
JSP, Servlet/Server di applicazioni Oracle | Solo prima occorrenza | param=val1 |
JSP, Servlet/Molo | Solo prima occorrenza | param=val1 |
IBM Lotus Domino | Solo ultima occorrenza | param=val2 |
IBM HTTP Server | Solo prima occorrenza | param=val1 |
mod_perl,libapreq2/Apache | Solo prima occorrenza | param=val1 |
Perl CGI/Apache | Solo prima occorrenza | param=val1 |
mod_wsgi (Python)/Apache | Solo prima occorrenza | param=val1 |
Python/Zope | Tutte le occorrenze nell'elenco (array) | param=['val1','val2'] |
tipi
Dalla parte del cliente
- Primo ordine / HPP riflesso
- Secondo ordine / HPP immagazzinato
- Terzo Ordine / DOM HPP
Lato server
- HPP standard
- HPP di secondo ordine
Prevenzione
La corretta convalida dell'input e la consapevolezza della tecnologia Web su HPP sono la protezione contro l'inquinamento da parametri HTTP.
Guarda anche
Riferimenti
Bibliografia
- Balduzzi, Marco; Torrano-Gimenez, Carmen; Balzarotti, Davide; Kirda, Engin (2011). Scoperta automatizzata delle vulnerabilità dell'inquinamento da parametri nelle applicazioni web . Atti del simposio sulla sicurezza delle reti e dei sistemi distribuiti, NDSS 2011 – via ResearchGate .