Parameter Pollution
Zanieczyszczenie parametru
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 zapytaniaa=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
Last updated