Podział odpowiedzi HTTP - HTTP response splitting

Dzielenie odpowiedzi HTTP to forma luki w zabezpieczeniach aplikacji internetowej , wynikająca z tego, że aplikacja lub jej środowisko nie potrafi prawidłowo oczyścić wartości wejściowych. Może być używany do przeprowadzania ataków na skrypty między witrynami, niszczenia między użytkownikami, zatruwania pamięci podręcznej sieci Web i podobnych exploitów .

Atak polega na tym, że serwer wypisuje sekwencję powrotu karetki (CR, ASCII 0x0D ) do nowego wiersza (LF, ASCII 0x0A ), po której następuje treść dostarczona przez atakującego w sekcji nagłówka jego odpowiedzi, zazwyczaj poprzez umieszczenie ich w polach wejściowych wysyłanych do Aplikacja. Zgodnie ze standardem HTTP ( RFC 2616 ), nagłówki są oddzielone jednym CRLF, a nagłówki odpowiedzi są oddzielone od treści dwoma. Dlatego niepowodzenie w usunięciu CR i LF umożliwia atakującemu ustawienie dowolnych nagłówków, przejęcie kontroli nad treścią lub podzielenie odpowiedzi na dwie lub więcej oddzielnych odpowiedzi - stąd nazwa.

Zapobieganie

Ogólnym rozwiązaniem jest kodowanie ciągów adresów URL przed włączeniem ich do nagłówków HTTP, takich jak Location lub Set-Cookie .

Typowe przykłady oczyszczania obejmują rzutowanie na liczby całkowite lub agresywne zastępowanie wyrażeń regularnych . Chociaż dzielenie odpowiedzi nie jest specyficzne dla PHP , interpreter PHP zapewnia ochronę przed atakiem od wersji 4.4.2 i 5.1.2.

Bibliografia

  1. ^ "PHP: PHP 5.1.2. Ogłoszenie o wydaniu" . Grupa PHP . Źródło 2014-11-13 .

Zewnętrzne linki