hacktricks/pentesting-web/parameter-pollution.md
2024-02-10 13:11:20 +00:00

6.2 KiB

Parameter Pollution

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Pregled HTTP Parameter Pollution (HPP)

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.

Primer HTTP Parameter Pollution (HPP)

URL transakcije bankovne 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 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.

Razlaganje parametara specifično za tehnologiju

  • 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 pomažu u identifikaciji ovih tehnologija i njihovog razlaganja parametara.

PHP i iskorišćavanje HPP-a

Slučaj manipulacije OTP-om:

  • 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.

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: 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.

Ovaj primer dodatno naglašava potrebu za sigurnom obradom parametara, posebno u funkcionalnostima koje su kritične poput upravljanja API ključem.

Razlaganje parametara: Flask vs. PHP

Način na koji veb tehnologije obrađuju duplicirane HTTP parametre varira, što utiče na njihovu podložnost HPP napadima:

  • 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.

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: