hacktricks/pentesting-web/parameter-pollution.md
2024-02-11 02:07:06 +00:00

80 lines
6.3 KiB
Markdown

# Parametervervuiling
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
</details>
# HTTP-parametervervuiling (HPP) Oorsig
HTTP-parametervervuiling (HPP) is 'n tegniek waar aanvallers HTTP-parameters manipuleer om die gedrag van 'n webtoepassing op onbedoelde maniere te verander. Hierdie manipulasie word gedoen deur HTTP-parameters by te voeg, te wysig of te dupliseer. Die effek van hierdie manipulasies is nie direk sigbaar vir die gebruiker nie, maar kan die funksionaliteit van die toepassing aan die kant van die bediener aansienlik verander, met waarneembare impakte aan die kant van die kliënt.
## Voorbeeld van HTTP-parametervervuiling (HPP)
'n URL vir 'n banktoepassingstransaksie:
- **Oorspronklike URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000`
Deur 'n addisionele `from`-parameter in te voeg:
- **Gemanipuleerde URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC`
Die transaksie kan verkeerdelik aan `accountC` belas word in plaas van `accountA`, wat die potensiaal van HPP illustreer om transaksies of ander funksionaliteite soos wagwoordherstel, 2FA-instellings of API-sleutelversoeke te manipuleer.
### **Tegnologiespesifieke parameterontleding**
- Die manier waarop parameters ontleding word en prioriteit kry, hang af van die onderliggende webtegnologie en beïnvloed hoe HPP uitgebuit kan word.
- Hulpmiddels soos [Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/) help om hierdie tegnologieë en hul ontledingsgedrag te identifiseer.
## PHP en HPP-uitbuiting
**Geval van OTP-manipulasie:**
- **Konteks:** 'n Aanmeldingsmeganisme wat 'n Eenmalige Wagwoord (OTP) vereis, is uitgebuit.
- **Metode:** Deur die OTP-versoek te onderskep met behulp van hulpmiddels soos Burp Suite, het aanvallers die `e-pos`-parameter in die HTTP-versoek gedupliseer.
- **Resultaat:** Die OTP, bedoel vir die oorspronklike e-pos, is in plaas daarvan na die tweede e-posadres gestuur wat in die gemanipuleerde versoek gespesifiseer is. Hierdie fout het ongemagtigde toegang moontlik gemaak deur die bedoelde sekuriteitsmaatreël te omseil.
Hierdie scenario beklemtoon 'n kritieke oorsig in die toepassing se agterkant, wat die eerste `e-pos`-parameter vir OTP-generering verwerk het, maar die laaste een vir aflewering gebruik het.
**Geval van API-sleutelmanipulasie:**
- **Scenario:** 'n Toepassing laat gebruikers toe om hul API-sleutel by te werk deur 'n profielinstellingsbladsy.
- **Aanvalsvector:** 'n Aanvaller ontdek dat deur 'n addisionele `api_key`-parameter aan die POST-versoek toe te voeg, hulle die uitkoms van die API-sleutelbywerkfunksie kan manipuleer.
- **Tegniek:** Deur 'n hulpmiddel soos Burp Suite te gebruik, stel die aanvaller 'n versoek saam wat twee `api_key`-parameters insluit: een wettige en een skadelike. Die bediener, wat slegs die laaste voorkoms verwerk, werk die API-sleutel by na die waarde wat deur die aanvaller voorsien is.
- **Resultaat:** Die aanvaller verkry beheer oor die slagoffer se API-funksionaliteit en kan moontlik ongemagtig toegang verkry tot of privaat data wysig.
Hierdie voorbeeld beklemtoon verder die noodsaaklikheid van veilige parameterhantering, veral in funksies soos API-sleutelbestuur.
## Parameterontleding: Flask vs. PHP
Die manier waarop webtegnologieë dupliseer HTTP-parameters hanteer, verskil en beïnvloed hul vatbaarheid vir HPP-aanvalle:
- **Flask:** Neem die eerste parameterwaarde wat aangetref word, soos `a=1` in 'n vraagstring `a=1&a=2`, en gee voorkeur aan die aanvanklike voorkoms bo daaropvolgende duplikate.
- **PHP (op Apache HTTP-bediener):** Daarenteen gee voorkeur aan die laaste parameterwaarde en kies dus `a=2` in die gegewe voorbeeld. Hierdie gedrag kan onbedoeld HPP-uitbuiting fasiliteer deur die aanvaller se gemanipuleerde parameter bo die oorspronklike te erken.
## Verwysings
* [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)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
</details>