6.4 KiB
Zanieczyszczenie parametru
Naucz się hakować 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ź PLAN SUBSKRYPCJI!
- 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 hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów GitHub.
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. Manipulacja ta polega na dodawaniu, modyfikowaniu lub duplikowaniu parametrów HTTP. Efekt tych manipulacji nie jest bezpośrednio widoczny dla użytkownika, ale może znacząco zmienić funkcjonalność aplikacji po stronie serwera, mając obserwowalne skutki 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
:
- Zmodyfikowany URL:
https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC
Transakcja może zostać błędnie obciążona na rzecz konta 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 specyficznych dla technologii
- Sposób analizy i priorytetu parametrów zależy od używanej technologii internetowej, co wpływa na sposób wykorzystania HPP.
- Narzędzia takie jak Wappalyzer pomagają zidentyfikować te technologie i ich zachowanie w analizie parametrów.
Wykorzystanie PHP i HPP
Przykład manipulacji OTP:
- Kontekst: Mechanizm logowania wymagający jednorazowego hasła (OTP) został wykorzystany.
- Metoda: Atakujący podwajał parametr
email
w żądaniu HTTP, przechwytując żądanie OTP za pomocą narzędzi takich jak Burp Suite. - Wynik: OTP, przeznaczone dla początkowego adresu e-mail, zostało wysłane na drugi adres e-mail określony w zmodyfikowanym żądaniu. Ta luka umożliwiała nieautoryzowany dostęp poprzez obejście zamierzonego zabezpieczenia.
Ten scenariusz podkreśla poważne przeoczenie w aplikacji backendowej, która przetwarzała pierwszy parametr email
w celu wygenerowania OTP, ale używała ostatniego parametru do dostarczenia go.
Przykład manipulacji kluczem API:
- Scenariusz: Aplikacja umożliwia użytkownikom aktualizację ich 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: Wykorzystując narzędzie takie 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 na wartość podaną przez atakującego. - Wynik: Atakujący uzyskuje kontrolę nad funkcjonalnością API ofiary, potencjalnie uzyskując nieautoryzowany dostęp do prywatnych danych lub ich modyfikację.
Ten przykład dodatkowo podkreśla konieczność bezpiecznego obsługiwania 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, co wpływa na podatność na ataki HPP:
- Flask: Przyjmuje wartość pierwszego napotkanego parametru, na przykład
a=1
w ciągu zapytaniaa=1&a=2
, przy czym pierwsze wystąpienie ma pierwszeństwo przed kolejnymi duplikatami. - PHP (na serwerze HTTP Apache): W przeciwnym razie, priorytet ma ostatnia wartość parametru, wybierając
a=2
w podanym przykładzie. To zachowanie może nieumyślnie ułatwiać ataki HPP, honorując manipulowany parametr atakującego nad oryginalnym.
Odwołania
- https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654
- https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution
Naucz się hakować 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ź PLAN SUBSKRYPCJI!
- 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 hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów GitHub.