7 KiB
Parameter Pollution
Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Experte)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks beworben sehen möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories einreichen.
![](/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif)
{% embed url="https://websec.nl/" %}
HTTP Parameter Pollution (HPP) Überblick
HTTP Parameter Pollution (HPP) ist eine Technik, bei der Angreifer HTTP-Parameter manipulieren, um das Verhalten einer Webanwendung auf unerwünschte Weise zu ändern. Diese Manipulation erfolgt durch das 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 Parameter Pollution (HPP)
Eine Transaktions-URL einer Bankanwendungen:
- 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 zeigt, Transaktionen oder andere Funktionen wie Passwortrücksetzungen, 2FA-Einstellungen oder API-Schlüsselanfragen zu manipulieren.
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 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 die OTP-Anforderung mit Tools wie Burp Suite abfangen, duplizieren Angreifer den
email
-Parameter im HTTP-Request. - Ergebnis: Das OTP, das für die ursprüngliche E-Mail gedacht war, wurde stattdessen an die im manipulierten Request angegebene zweite E-Mail-Adresse gesendet. Diese Schwachstelle ermöglichte unbefugten Zugriff, indem sie die beabsichtigte Sicherheitsmaßnahme umging.
Dieses Szenario verdeutlicht ein kritisches Versäumnis in der Backend-Anwendung, das den ersten email
-Parameter für die OTP-Generierung verarbeitete, aber den letzten für die Zustellung verwendete.
Fall von API-Schlüssel-Manipulation:
- Szenario: Eine Anwendung ermöglicht Benutzern, ihren API-Schlüssel über eine Profilseiteneinstellung zu aktualisieren.
- Angriffsvektor: Ein Angreifer entdeckt, dass er durch Anhängen eines zusätzlichen
api_key
-Parameters an die POST-Anforderung das Ergebnis der API-Schlüsselaktualisierungsfunktion 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, der nur das letzte Auftreten verarbeitet, aktualisiert den API-Schlüssel auf den vom Angreifer bereitgestellten Wert. - 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 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: Übernimmt den Wert des ersten Parameters, den es findet, wie z.B.
a=1
in einer Abfragezeichenfolgea=1&a=2
, wobei die erste Instanz gegenüber nachfolgenden Duplikaten priorisiert wird. - PHP (auf dem Apache HTTP Server): Priorisiert im Gegensatz dazu den letzten Parameterwert und wählt in dem gegebenen Beispiel
a=2
. Dieses Verhalten kann unbeabsichtigt HPP-Angriffe erleichtern, indem der manipulierte Parameter des Angreifers über dem ursprünglichen bevorzugt wird.
Referenzen
- https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654
- https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution
![](/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif)
{% embed url="https://websec.nl/" %}
Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Experte)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks beworben sehen möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories einreichen.