hacktricks/pentesting-web/parameter-pollution.md

90 lines
6.5 KiB
Markdown

# Manipulacija parametrima
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks suvenir**](https://peass.creator-spring.com)
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# Pregled HTTP Manipulacije Parametara (HPP)
HTTP Manipulacija Parametara (HPP) je tehnika gde napadači manipulišu HTTP parametrima kako bi promenili ponašanje veb aplikacije na neželjen način. Ova manipulacija se vrši dodavanjem, modifikovanjem ili dupliranjem HTTP parametara. Efekat ovih manipulacija nije direktno vidljiv korisniku, ali može značajno promeniti funkcionalnost aplikacije na serverskoj strani, sa vidljivim uticajem na klijentskoj strani.
## Primer HTTP Manipulacije Parametara (HPP)
URL transakcije bankarske aplikacije:
- **Originalni URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000`
Ubacivanjem dodatnog `from` parametra:
- **Manipulisani URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC`
Transakcija može biti pogrešno naplaćena na `accountC` umesto na `accountA`, pokazujući potencijal HPP-a za manipulaciju transakcijama ili drugim funkcionalnostima poput resetovanja lozinke, podešavanja 2FA ili zahteva za API ključem.
### **Parsiranje Parametara Specifično za Tehnologiju**
- Način na koji se parametri parsiraju i prioritetizuju zavisi od osnovne veb tehnologije, utičući na to kako HPP može biti iskorišćen.
- Alati poput [Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/) pomažu u identifikaciji ovih tehnologija i njihovih parsirajućih ponašanja.
## PHP i Iskorišćavanje HPP-a
**Slučaj Manipulacije OTP-om:**
- **Kontekst:** Mehanizam prijave koji zahteva Jednokratnu Lozinku (OTP) je iskorišćen.
- **Metod:** Interceptiranjem zahteva za OTP korišćenjem alata poput Burp Suite, napadači su duplirali `email` parametar u HTTP zahtevu.
- **Ishod:** OTP, namenjen prvom emailu, umesto toga je poslat na drugu email adresu navedenu u manipulisanom zahtevu. Ova greška je omogućila neovlašćen pristup zaobići namenjenu sigurnosnu meru.
Ovaj scenario ističe kritičan propust u serverskoj strani aplikacije, koja je obradila prvi `email` parametar za generisanje OTP-a, ali je koristila poslednji za dostavu.
**Slučaj Manipulacije API ključem:**
- **Scenario:** Aplikacija omogućava korisnicima da ažuriraju svoj API ključ putem stranice za podešavanje profila.
- **Vektor Napada:** Napadač otkriva da dodavanjem dodatnog `api_key` parametra POST zahtevu, može manipulisati ishodom funkcije ažuriranja API ključa.
- **Tehnika:** Koristeći alat poput Burp Suite, napadač kreira zahtev koji uključuje dva `api_key` parametra: jedan legitimni i jedan zlonamerni. Server, obrađujući samo poslednje pojavljivanje, ažurira API ključ na vrednost koju je napadač pružio.
- **Rezultat:** Napadač dobija kontrolu nad funkcionalnošću API-ja žrtve, potencijalno pristupajući ili modifikujući privatne podatke neovlašćeno.
Ovaj primer dodatno ističe neophodnost sigurnog rukovanja parametrima, posebno u funkcionalnostima kao što je upravljanje API ključem.
## Parsiranje Parametara: Flask vs. PHP
Način na koji veb tehnologije rukuju dupliranim HTTP parametrima varira, utičući na njihovu podložnost HPP napadima:
- **Flask:** Prihvata vrednost prvog parametra koji se susreće, kao što je `a=1` u upitu `a=1&a=2`, dajući prioritet početnom primerku nad kasnijim duplikatima.
- **PHP (na Apache HTTP Serveru):** Suprotno tome, daje prioritet poslednjoj vrednosti parametra, birajući `a=2` u datom primeru. Ovo ponašanje može nenamerno olakšati HPP eksploataciju poštujući napadačev manipulisani parametar iznad originalnog.
## Reference
* [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)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks suvenir**](https://peass.creator-spring.com)
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>