Parameter Pollution

Zanieczyszczenie parametru

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

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 niezamierzone sposoby. Ta manipulacja 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, 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 specyficznych 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 wada 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żywał ostatniego do dostarczenia.

Przypadek manipulacji klucza API:

  • Scenariusz: Aplikacja pozwala użytkownikom aktualizować swój klucz 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 zapytania a=1&a=2, priorytetyzując początkowe wystąpienie nad kolejnymi duplikatami.

  • PHP (na serwerze Apache HTTP): W przeciwieństwie do tego, priorytetyzuje wartość ostatniego 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

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated