# Parameter Pollution
Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)! Andere Möglichkeiten, HackTricks zu unterstützen: * Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)! * Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com) * Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family) * **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
# Übersicht über HTTP-Parameterverunreinigung (HPP) HTTP-Parameterverunreinigung (HPP) ist eine Technik, bei der Angreifer HTTP-Parameter manipulieren, um das Verhalten einer Webanwendung auf ungewollte Weise zu ändern. Diese Manipulation erfolgt durch Hinzufügen, Ändern oder Duplizieren von HTTP-Parametern. Die Auswirkungen dieser Manipulationen sind für den Benutzer nicht direkt sichtbar, können jedoch die Funktionalität der Anwendung auf der Serverseite erheblich verändern und sich auf der Clientseite bemerkbar machen. ## Beispiel für HTTP-Parameterverunreinigung (HPP) Eine URL für eine Bankanwendungstransaktion: - **Ursprüngliche URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000` Durch Hinzufügen eines zusätzlichen `from`-Parameters: - **Manipulierte URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC` Die Transaktion kann fälschlicherweise auf `accountC` anstelle von `accountA` belastet werden, was das Potenzial von HPP zur Manipulation von Transaktionen oder anderen Funktionen wie Passwortrücksetzungen, 2FA-Einstellungen oder API-Schlüsselanforderungen zeigt. ### Technologiespezifische Parameteranalyse - Die Art und Weise, wie Parameter analysiert und priorisiert werden, hängt von der zugrunde liegenden Webtechnologie ab und beeinflusst, wie HPP ausgenutzt werden kann. - Tools wie [Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/) helfen dabei, diese Technologien und ihr Analyseverhalten zu identifizieren. ## PHP und HPP-Ausnutzung **Fall von OTP-Manipulation:** - **Kontext:** Ein Anmeldeverfahren, das eine Einmalpasswort (OTP) erfordert, wurde ausgenutzt. - **Methode:** Indem sie den OTP-Anforderung mit Tools wie Burp Suite abfangen, haben Angreifer den `email`-Parameter in der HTTP-Anforderung dupliziert. - **Ergebnis:** Das für die ursprüngliche E-Mail vorgesehene OTP wurde stattdessen an die zweite angegebene E-Mail-Adresse in der manipulierten Anforderung gesendet. Diese Schwachstelle ermöglichte einen unbefugten Zugriff, indem die beabsichtigte Sicherheitsmaßnahme umgangen wurde. Dieses Szenario verdeutlicht ein schwerwiegendes Versäumnis in der Backend-Anwendung, das den ersten `email`-Parameter für die OTP-Generierung verarbeitet, aber den letzten für die Zustellung verwendet hat. **Fall von API-Schlüssel-Manipulation:** - **Szenario:** Eine Anwendung ermöglicht Benutzern die Aktualisierung ihres API-Schlüssels über eine Profil-Einstellungsseite. - **Angriffsvektor:** Ein Angreifer entdeckt, dass er durch Anhängen eines zusätzlichen `api_key`-Parameters an die POST-Anforderung das Ergebnis der API-Schlüssel-Aktualisierungsfunktion manipulieren kann. - **Technik:** Unter Verwendung eines Tools wie Burp Suite erstellt der Angreifer eine Anforderung, die zwei `api_key`-Parameter enthält: einen legitimen und einen bösartigen. Der Server aktualisiert nur das letzte Auftreten und verwendet den vom Angreifer angegebenen Wert für den API-Schlüssel. - **Ergebnis:** Der Angreifer erhält die Kontrolle über die API-Funktionalität des Opfers und kann potenziell unbefugt auf private Daten zugreifen oder diese ändern. Dieses Beispiel unterstreicht die Notwendigkeit einer sicheren Parameterverarbeitung, insbesondere bei Funktionen von so großer Bedeutung wie der Verwaltung von API-Schlüsseln. ## Parameteranalyse: Flask vs. PHP Die Art und Weise, wie Webtechnologien doppelte HTTP-Parameter behandeln, variiert und beeinflusst ihre Anfälligkeit für HPP-Angriffe: - **Flask:** Nimmt den Wert des ersten Parameters an, den es findet, z.B. `a=1` in einer Abfragezeichenfolge `a=1&a=2`, wobei die erste Instanz Vorrang vor den nachfolgenden Duplikaten hat. - **PHP (auf Apache HTTP Server):** Priorisiert hingegen den letzten Parameterwert und wählt in diesem Beispiel `a=2`. Dieses Verhalten kann unbeabsichtigt HPP-Angriffe erleichtern, indem der manipulierte Parameter des Angreifers über den ursprünglichen Parameter gestellt wird. ## Referenzen * [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)
Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)! Andere Möglichkeiten, HackTricks zu unterstützen: * Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)! * Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com) * Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family) * **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.