hacktricks/pentesting-web/parameter-pollution.md

91 lines
6.8 KiB
Markdown
Raw Normal View History

# Inquinamento dei parametri
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Impara l'hacking su AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
Altri modi per supportare HackTricks:
2023-12-31 01:25:17 +00:00
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
2024-02-10 13:03:23 +00:00
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
2022-04-28 16:01:33 +00:00
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
2020-07-30 08:34:18 +00:00
{% embed url="https://websec.nl/" %}
# Panoramica dell'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.
2020-07-30 08:34:18 +00:00
2024-02-10 13:03:23 +00:00
## Esempio di Inquinamento dei Parametri HTTP (HPP)
2020-07-30 08:34:18 +00:00
Un URL di transazione dell'applicazione bancaria:
2020-07-30 08:34:18 +00:00
- **URL Originale:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000`
2020-07-30 08:34:18 +00:00
2024-02-10 13:03:23 +00:00
Inserendo un parametro `from` aggiuntivo:
2020-07-30 08:34:18 +00:00
- **URL Manipolato:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC`
2020-07-30 08:34:18 +00:00
La transazione potrebbe essere erroneamente addebitata a `accountC` invece di `accountA`, mostrando il potenziale dell'HPP nel manipolare transazioni o altre funzionalità come il reset della password, le impostazioni del 2FA o le richieste di chiave API.
2020-07-30 08:34:18 +00:00
### **Analisi dei Parametri Specifici della Tecnologia**
2020-07-30 08:34:18 +00:00
- Il modo in cui i parametri vengono analizzati e prioritizzati dipende dalla tecnologia web sottostante, influenzando come HPP può essere sfruttato.
2024-02-10 13:03:23 +00:00
- Strumenti come [Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/) aiutano a identificare queste tecnologie e i loro comportamenti di analisi.
2020-07-30 08:34:18 +00:00
2024-02-10 13:03:23 +00:00
## Sfruttamento di PHP e HPP
2020-07-30 08:34:18 +00:00
2024-02-10 13:03:23 +00:00
**Caso di Manipolazione OTP:**
2020-07-30 08:34:18 +00:00
- **Contesto:** Un meccanismo di accesso che richiede un One-Time Password (OTP) è stato sfruttato.
2024-02-10 13:03:23 +00:00
- **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.
2020-07-30 08:34:18 +00:00
Questo scenario evidenzia una grave mancanza nel backend dell'applicazione, che ha elaborato il primo parametro `email` per la generazione dell'OTP ma ha utilizzato l'ultimo per la consegna.
2020-07-30 08:34:18 +00:00
2024-02-10 13:03:23 +00:00
**Caso di Manipolazione della Chiave API:**
2020-07-30 08:34:18 +00:00
- **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.
2024-02-10 13:03:23 +00:00
- **Risultato:** L'attaccante ottiene il controllo sulla funzionalità API della vittima, potenzialmente accedendo o modificando dati privati in modo non autorizzato.
2020-07-30 08:34:18 +00:00
Questo esempio sottolinea ulteriormente la necessità di gestire in modo sicuro i parametri, specialmente in funzionalità critiche come la gestione delle chiavi API.
2024-02-06 03:10:38 +00:00
## Analisi dei Parametri: Flask vs. PHP
2024-02-06 03:10:38 +00:00
2024-02-10 13:03:23 +00:00
Il modo in cui le tecnologie web gestiscono i parametri HTTP duplicati varia, influenzando la loro suscettibilità agli attacchi HPP:
2024-02-06 03:10:38 +00:00
- **Flask:** Adotta il valore del primo parametro incontrato, come `a=1` in una stringa di query `a=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.
2020-07-30 08:34:18 +00:00
2024-02-10 13:03:23 +00:00
## Riferimenti
2024-02-04 16:10:29 +00:00
* [https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654](https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654)
* [https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution](https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution)
2022-04-28 16:01:33 +00:00
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Impara l'hacking su AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
Altri modi per supportare HackTricks:
2023-12-31 01:25:17 +00:00
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
2024-02-10 13:03:23 +00:00
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
2022-04-28 16:01:33 +00:00
</details>