Dziury w oprogramowaniu WWW

Dziury w oprogramowaniu WWW


Strony WWW stają się coraz bardziej interaktywne, coraz bardziej dynamiczne. Do tego rozwoju potrzebne jest specjalistycze oprogramowanie działające po stronie serwera. Takie oprogramowanie ma dostęp do plików wewnętrznych komputera-serwera, nie tylko do plików udostępnianych przez serwer WWW. Poprzez to może być ono wykorzystane np: do odczytania plików innych niż te udostępniane przez serwer WWW ( np: /etc/passwd ), lub w skrajnych przypadkach wykorzystane do uzyskania kontroli nad komputerem - serwerem WWW. Skrypty CGI bardzo często pisane są w języku PERL. Oto przykładowy kod:
Zamieniając nazwę pliku z "myfile.txt" na "ls -l |" wywołamy komendę ls :) W ogólności: nie sparsowane wejście programu może powodowac różne niezamierzone skutki.
Załóżmy, że mamy skrypt w perlu, który uruchamia program nmap z parametrem par przesłanym poprzez CGI: nmap $par. Jeżeli spreparujemy parametr np. tak: "www.wp.pl; ls -l", to na wyjściu będziemy mieli także wyniki polecenia ls. Jeżeli w dodatku serwer WWW działa z uprawnieniami roota, to można wtedy naprawdę dużo zyskać. Wersje PHP poniżej 4.2 mają domyślnie rejestrowanie zmiennych. Znając kod programu można łatwo spreparować takie wywołanie skryptu, które pozwoli na dostęp do np. chronionej hasłem części serwisu WWW.

[ UP ] [ NEXT ]

(c) by Jarek