12 Bezpieczeństwo stron WWW 6 minut czytania

Google hacking

W Google można znaleźć naprawdę ciekawe informacje. Dużo jest też zaindeksowanych stron z błędami wygenerowanymi przez języki skryptowe. Ten wpis będzie poświęcony bezpieczeństwu stron www. Ponad przedstawię przykład wykorzystania takiej informacji o błędzie oraz jak jej zapobiec.

W jakimś czasopiśmie (nie pamiętam już nazwy), czytałem o tym jak wykorzystać informacje z Google do znajdowania starych wersji darmowych skryptów, w celu przejęcia kontroli nad nimi. Autor opisywał krok po kroku co robi, czego szuka i jak to wykorzystać.

Po ostatnich wydarzeniach w TVN w programie "Teraz My", gdzie było "hackowanie na ekranie" w zmorzyły się próby ataków na serwisy internetowe (oczywiście te większe). Bezpieczeństwem stron www zaczęto się coraz bardziej interesować i przykładać do tego coraz większą uwagę.

W ostatnim czasie, pisałem część mojego licencjatu na temat bezpieczeństwa stron internetowych (stąd między innymi zastój na blogu). Poświęciłem chwilę uwagi błędom PHP, które są generowane gdy programista błędnie waliduje dane. Rzecz niby prosta, ale...

Korzystając z prawie nieograniczonych zasobów Google, zacząłem przeszukiwać strony www, zawierające jakieś komunikaty o błędach, nigdy nie wiadomo na co można się natknąć.
Po wpisaniu do Google: Warrning: fatal error pokazał trochę wyników, ale nie było niczego godnego uwagi. Potem kombinowałem z błędami dla poszczególnych funkcji mysql i postgres. Tutaj wyników było już więcej. Znalazłem jedną stronę na której pojawił się błąd:

Warning: pg_result(): supplied argument is not a valid PostgreSQL result resource in /xxxxxxxxxxx/inc/config.inc.php on line 79

Jak widać, w katalogu /inc znajduje się plik konfiguracyjny, mogą nawet być inne. Odwiedziłem ten katalog. Zgodnie z przewidywaniami były tam inne pliki konfiguracyjne.
Szczególnie moją uwagę zwrócił plik mosConfig.php, jak się okazało był to skrypt do zarządzania plikami na serwerze! Można było wgrywać pliki, zmieniać chmod. Jednym słowem, tak jakbym był pełnoprawnym użytkownikiem na serwerze.
Oczywiście nie muszę już pisać, że wszedłem w posiadanie takich danych, jak: loginy i hasła do bazy danych, struktura bazy danych, lista użytkowników itp. Poniżej screeny:

Jak się potem okazało, po odpowiednim spreparowaniu adresu URL otrzymałem taki sam błąd, więc bez pomocy Google mogłem osiągnąć to samo.

Jak można było uniknąć takiej sytuacji?

  • Odpowiednie prawa dostępu do katalogów, aby nieupoważnione osoby weszły w posiadanie poufnych informacji.
  • Walidować przychodzące dane. W tym przypadku wystarczyło, że wprowadzi się jakąś większą liczbę i skrypt się wykładał.
  • ten konkretny przypadek korzystał z regułek mod_rewrite. Regułki też można było w lepszy sposób napisać – na przykład ustawić jakieś limity (szczególnie dla danych liczbowych).
  • Najlepszym rozwiązaniem mogłoby być zapisywanie informacji o błędach w oddzielnych plikach, tak aby na samej stronie nie były wyświetlane.

Jak Wy - czytelnicy mojego bloga - zabezpieczacie swoje serwisy? Jak widać takim atakującym może być każda osoba, która ma podstawowe wiadomości o programowaniu.

ps. Luka w serwisie została już poprawiona.




Akceptuję politykę prywatności

Raz w miesiącu e-mail z najlepszymi artykułami

Zdjęcie autora wpisu - Piotr Cichosz

Piotr Cichosz — autor wpisu

Frontend developer. Tworzę zaawansowane systemy webowe w JS. Swoją wiedzę nt. SEO wykorzystuję do rozwijania własnych projektów (z lepszym lub gorszym efektem). Dużo eksperymentuję i staram się określić jak bardzo można nagiąć cierpliwość algorytmów Google (:. Prowadzę teraz bloga technologicznego oraz bloga o Apple

Komentarze 12

author Mendax www 06.03.2007 11:29:33

takimi metodami da sie sporo darmowych linkow zdobyc, hehe;)

natomiast co do zabezpieczen, to:
-zawsze staram sie ustawic error_reporting na 0
-w glownym katalogu trzymam tylko index.php, ktory w zaleznosci od jakiejs wartosci (najczesciej przetworzonej z pomoca mod_rewrite), po sprawdzeniu poprawnosci tej wartosci, includuje odpowiedni plik z katalogu /inc, zabezpieczonego odpowiednio htaccess-em czyli "Deny from all".

author webworker www 16.03.2007 22:42:06

warto też korzystać z łatek i aktualizacji systemów CMS-tuaj opisałeś zhakowane mambo-chyba ulubiony system hacerów-ale jak dobrze poczytać to można je tez zabezpieczyć...ważnym jest również zeby kontrolować lub wogóle nieprzepuszczać plików uploadowanych...

author Marzena www 20.03.2007 15:12:17

Od dłuższego czasu tworzę, a także prowadzę strony internetowe szkoły. Jestem nauczycielem informatyki, osobą która raczej z zamiłowania tworzy stronę umieszczając ją na darmowym serwerze, gdyż jak wiadomo szkoły są biedne. Uważam, że obecna strona (tu nie podam adresu, aby nie kusić losu) jest całkiem niezła, a ja gdyby czasem ktoś się na nią wkradł miałabym kłopoty. Ostatnio w naszym mieście nastolatek zablokował stronę internetową Domu Kultury. Nie chciałabym aby w swoich poczynaniach poszedł dalej, nawet jeśli nie on, bo mu to uniemożliwią, to ktoś inny. Potem zdarzają się przypadki, że nauczyciele mają na zdjęciu dorysowane wąsy. Jednak do rzeczy, chciałabym ustrzec moją stronę przed tego typu wtargnięciami. Napomknę jedynie, że jest napisana w języku html, a do przesyłu plików na stronę wykorzystuję program WSFTP, gdzie wystarczy wpisać małe hasło, aby się na nią dostać. Uważam, że to żadne zabezpieczenie, takie hasła przecież można łatwo złamać. Proszę o poradę jak chronić jej zawartość, a także dostęp.

author bosal www 23.03.2007 16:01:34

najlepiej nie uzywac darmowych cmsow, chyba ze sa naprawde sprawdzone jak wordpress, czy darmowe fora.

author bosal www 23.03.2007 16:02:15

edit: fora jak punbb, invision board (nie wiem czy nadal darmowe)

author Mendax www 27.03.2007 00:56:35

Marzena: jesli korzystasz jedynie z plikow html, i nie umieszczasz na serwerze skryptow wykonywanych po stronie serwera, czyli np. PHP, czy ASP, to nie musisz sie obawiac "wlamu" na strone.
natomiast, jak rozumiem, masz obiekcje co do hasla dostepu do FTP. coz, najlepiej skontaktowac sie z adminem serwera, ewentualnie skorzystac z odpowiedniej funkcji, ktora gdzies powinna byc;) i zmienic haslo na cos w stylu "oe7ifh1r9f49f" - tego nie da sie tak latwo zlamac...

author pozmu www 05.06.2007 02:15:16

Odnośnie "Jak można było uniknąć takiej sytuacji?" to się nie zgodzę - to raczej półśrodki... Przede wszystkim trzeba nie zostawiać niezabezpieczonych narzędzi tego typu. Jasne, gdyby nie ten komunikat błędu to może byś tam nie trafił, ale z drugiej strony nawet gdyby tego błędu nie było to i tak można by odgadnąć nazwę pliku i zrobić "wjazd"...

author konkur4 www 09.12.2010 16:01:42

O google hacking dowiecie się też z tąd: http://www.ghack.jcom.pl

author konkur4 www 09.12.2010 16:01:42

O google hacking dowiecie się też z tąd: http://www.ghack.jcom.pl

author Kamil www 13.05.2011 12:25:38

Najlepszym zabezpieczeniem wydaje się być wypisywanie zunifikowanych błędów jeśli coś pójdzie nie tak jak powinno. Wtedy niezależnie od komunikatu błędu użytkownik zobaczy tylko coś w stylu "wystąpił błąd", albo jeszcze lepiej, gdy po prostu zostanie przekierowany na główną stronę serwisu i nawet nie będzie świadom, że wystąpił błąd.

author Rachman www 29.01.2012 23:29:28

Warto też includować w php "ukrywanie" błędów i ostrzeżeń:

error_reporting(0);
ini_set('display_errors', 0);

author Google hacking 13.04.2013 00:27:04

Wyszukiwarki mogą czasami zindeksować czasami to co nie chcielibyśmy, aby ktoś miał do tego dostęp. Niestety bardzo często winę w tym przypadku ponosi człowiek. Dowiedz się co google może wiedzieć o Tobie, o Twojej
firmie itp. i naucz się przed tym zabezpieczyć.

O google hacking więcej przeczytaj na www.googlehacking.tk

Dodaj komentarz