hacktricks/pentesting-web/parameter-pollution.md

81 lines
6.2 KiB
Markdown
Raw Normal View History

# Parameter Pollution
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:11:20 +00:00
<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>
2022-04-28 16:01:33 +00:00
2024-02-10 13:11:20 +00:00
Drugi načini podrške HackTricks-u:
2023-12-31 01:25:17 +00:00
2024-02-10 13:11:20 +00:00
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](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 **Twitter-u** 🐦 [**@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.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 13:11:20 +00:00
# Pregled HTTP Parameter Pollution (HPP)
2020-07-30 08:34:18 +00:00
2024-02-10 13:11:20 +00:00
HTTP Parameter Pollution (HPP) je tehnika u kojoj napadači manipulišu HTTP parametrima kako bi promenili ponašanje veb aplikacije na neželjen način. Ova manipulacija se vrši dodavanjem, izmenom ili dupliciranjem HTTP parametara. Efekat ovih manipulacija nije direktno vidljiv korisniku, ali može značajno izmeniti funkcionalnost aplikacije na serverskoj strani, sa vidljivim posledicama na klijentskoj strani.
2020-07-30 08:34:18 +00:00
2024-02-10 13:11:20 +00:00
## Primer HTTP Parameter Pollution (HPP)
2020-07-30 08:34:18 +00:00
2024-02-10 13:11:20 +00:00
URL transakcije bankovne aplikacije:
2020-07-30 08:34:18 +00:00
2024-02-10 13:11:20 +00:00
- **Originalni URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000`
2020-07-30 08:34:18 +00:00
2024-02-10 13:11:20 +00:00
Ubacivanjem dodatnog `from` parametra:
2020-07-30 08:34:18 +00:00
2024-02-10 13:11:20 +00:00
- **Manipulisani URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC`
2020-07-30 08:34:18 +00:00
2024-02-10 13:11:20 +00:00
Transakcija može biti netačno naplaćena sa računa `accountC` umesto sa računa `accountA`, što pokazuje potencijal HPP-a za manipulaciju transakcijama ili drugim funkcionalnostima kao što su resetovanje lozinke, podešavanje dvofaktorne autentifikacije ili zahtevi za API ključem.
2020-07-30 08:34:18 +00:00
2024-02-10 13:11:20 +00:00
### **Razlaganje parametara specifično za tehnologiju**
2020-07-30 08:34:18 +00:00
2024-02-10 13:11:20 +00:00
- Način na koji se parametri razlažu i prioritizuju zavisi od osnovne veb tehnologije, što utiče na to kako se HPP može iskoristiti.
- Alati poput [Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/) pomažu u identifikaciji ovih tehnologija i njihovog razlaganja parametara.
2020-07-30 08:34:18 +00:00
2024-02-10 13:11:20 +00:00
## PHP i iskorišćavanje HPP-a
2020-07-30 08:34:18 +00:00
2024-02-10 13:11:20 +00:00
**Slučaj manipulacije OTP-om:**
2020-07-30 08:34:18 +00:00
2024-02-10 13:11:20 +00:00
- **Kontekst:** Mehanizam prijave koji zahteva jednokratnu lozinku (OTP) je iskorišćen.
- **Metod:** Napadači su duplirali `email` parametar u HTTP zahtevu tako što su presreli zahtev za OTP korišćenjem alata poput Burp Suite-a.
- **Ishod:** OTP, namenjen prvobitnom email-u, umesto toga je poslat na drugu email adresu navedenu u manipulisanom zahtevu. Ova greška je omogućila neovlašćen pristup zaobilazeći namensku sigurnosnu meru.
2020-07-30 08:34:18 +00:00
2024-02-10 13:11:20 +00:00
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.
2020-07-30 08:34:18 +00:00
2024-02-10 13:11:20 +00:00
**Slučaj manipulacije API ključem:**
2020-07-30 08:34:18 +00:00
2024-02-10 13:11:20 +00:00
- **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:** Korišćenjem alata poput Burp Suite-a, 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 menjajući privatne podatke neovlašćeno.
2020-07-30 08:34:18 +00:00
2024-02-10 13:11:20 +00:00
Ovaj primer dodatno naglašava potrebu za sigurnom obradom parametara, posebno u funkcionalnostima koje su kritične poput upravljanja API ključem.
2024-02-06 03:10:38 +00:00
2024-02-10 13:11:20 +00:00
## Razlaganje parametara: Flask vs. PHP
2024-02-06 03:10:38 +00:00
2024-02-10 13:11:20 +00:00
Način na koji veb tehnologije obrađuju duplicirane HTTP parametre varira, što utiče na njihovu podložnost HPP napadima:
2024-02-06 03:10:38 +00:00
2024-02-10 13:11:20 +00:00
- **Flask:** Prihvata vrednost prvog parametra koji se sretne, kao što je `a=1` u upitu `a=1&a=2`, dajući prioritet prvobitnom primerku u odnosu na kasnije duplicirane vrednosti.
- **PHP (na Apache HTTP Server-u):** Suprotno tome, daje prioritet poslednjoj vrednosti parametra, birajući `a=2` u datom primeru. Ovo ponašanje nenamerno može olakšati HPP iskorišćavanje tako što će poštovati napadačev manipulisani parametar umesto originalnog.
2020-07-30 08:34:18 +00:00
2024-02-10 13:11:20 +00:00
## Reference
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
<details>
2024-02-10 13:11:20 +00:00
<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>
2022-04-28 16:01:33 +00:00
2024-02-10 13:11:20 +00:00
Drugi načini podrške HackTricks-u:
2023-12-31 01:25:17 +00:00
2024-02-10 13:11:20 +00:00
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](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 **Twitter-u** 🐦 [**@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.
2022-04-28 16:01:33 +00:00
</details>