6.7 KiB
Zanieczyszczenie parametru
Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na GitHubie.
{% embed url="https://websec.nl/" %}
Przegląd zanieczyszczenia parametru HTTP (HPP)
Zanieczyszczenie parametru HTTP (HPP) to technika, w której atakujący manipulują parametrami HTTP, zmieniając zachowanie aplikacji internetowej w niezamierzony sposób. Ta manipulacja polega na dodawaniu, modyfikowaniu lub duplikowaniu parametrów HTTP. Skutki tych manipulacji nie są bezpośrednio widoczne dla użytkownika, ale mogą znacząco zmienić funkcjonalność aplikacji po stronie serwera, z obserwowalnymi skutkami po stronie klienta.
Przykład zanieczyszczenia parametru HTTP (HPP)
URL transakcji aplikacji bankowej:
- Oryginalny URL:
https://www.victim.com/send/?from=accountA&to=accountB&amount=10000
Poprzez dodanie dodatkowego parametru from
:
- Zmanipulowany URL:
https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC
Transakcja może zostać błędnie obciążona na rzecz accountC
zamiast accountA
, co pokazuje potencjał HPP do manipulowania transakcjami lub innymi funkcjonalnościami, takimi jak resetowanie hasła, ustawienia 2FA lub żądania klucza API.
Analiza parametrów specyficzna dla technologii
- Sposób analizowania i priorytetyzowania parametrów zależy od zastosowanej technologii internetowej, wpływając na sposób eksploatacji HPP.
- Narzędzia takie jak Wappalyzer pomagają zidentyfikować te technologie i ich zachowania analizy.
Wykorzystanie PHP i HPP
Przypadek manipulacji OTP:
- Kontekst: Mechanizm logowania wymagający jednorazowego hasła (OTP) został wykorzystany.
- Metoda: Poprzez przechwycenie żądania OTP za pomocą narzędzi takich jak Burp Suite, atakujący zduplikowali parametr
email
w żądaniu HTTP. - Wynik: OTP, przeznaczone dla początkowego adresu e-mail, zostało wysłane na drugi adres e-mail określony w zmanipulowanym żądaniu. Ta luka umożliwiła nieautoryzowany dostęp poprzez obejście zamierzonego środka bezpieczeństwa.
Ten scenariusz podkreśla istotny błąd w backendzie aplikacji, który przetwarzał pierwszy parametr email
do generowania OTP, ale użył ostatniego do dostarczenia.
Przypadek manipulacji klucza API:
- Scenariusz: Aplikacja umożliwia użytkownikom aktualizację swojego klucza API za pomocą strony ustawień profilu.
- Wektor ataku: Atakujący odkrywa, że dodając dodatkowy parametr
api_key
do żądania POST, może manipulować wynikiem funkcji aktualizacji klucza API. - Technika: Korzystając z narzędzia takiego jak Burp Suite, atakujący tworzy żądanie, które zawiera dwa parametry
api_key
: jeden legalny i jeden złośliwy. Serwer, przetwarzając tylko ostatnie wystąpienie, aktualizuje klucz API do wartości podanej przez atakującego. - Wynik: Atakujący uzyskuje kontrolę nad funkcjonalnością API ofiary, potencjalnie uzyskując dostęp lub modyfikując prywatne dane nieautoryzowane.
Ten przykład dodatkowo podkreśla konieczność bezpiecznego przetwarzania parametrów, zwłaszcza w funkcjach tak krytycznych jak zarządzanie kluczem API.
Analiza parametrów: Flask vs. PHP
Sposób obsługi duplikowanych parametrów HTTP różni się w zależności od technologii internetowych, wpływając na podatność na ataki HPP:
- Flask: Przyjmuje wartość pierwszego parametru napotkanego, takiego jak
a=1
w ciągu zapytaniaa=1&a=2
, priorytetyzując początkowe wystąpienie nad kolejnymi duplikatami. - PHP (na serwerze Apache HTTP): W przeciwieństwie do tego, priorytetyzuje ostatnią wartość parametru, wybierając
a=2
w podanym przykładzie. To zachowanie może niechcący ułatwić eksploatację HPP, honorując zmanipulowany parametr atakującego ponad oryginalny.
Odnośniki
- https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654
- https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution
{% embed url="https://websec.nl/" %}
Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na GitHubie.