4 Bezpieczeństwo stron WWW 3 minuty czytania

Sprawdzanie podatności na SQL Injection

Reklama Na Blogach Dzisiaj kolejny wpis z bezpieczeństwa stron. Poruszę kwestię sprawdzania, czy nasz skrypt jest podatnych na tego typu ataki oraz w jaki sposób można masowo sprawdzać próby ataków (formularze, ciasteczka, sesje i ingerencja w adres strony).

Do popełnienia tego wpisu zainspirował mnie artykuł w najnowszym numerze hackin9 6/2009 (49). Pierwsze wrażenie jakie na mnie zrobił artykuł „Metodyka ataków SQL Injection” to, że będzie powtórka z rozrywki. Znowu będą przykłady brane żywcem w z Wikipedii. We wstępie tak niestety było.

Testowanie ręczne podatności na tego typu atak trochę mija się z celem. Trzeba wtedy sprawdzać:

  • pola formularzy (te ukryte, jawne itp),
  • ciasteczka,
  • sesje,
  • parametry przekazywane metodą GET.

Sprawdzenie tego wszystkiego będzie czasochłonne. Można to zlecić specjalistom lub skorzystać z dobrodziejstw Internetu i znaleźć darmowe aplikacje ułatwiające nam życie – fuzzery (ang. fuzzers, fuzzing). Pod tą tajemniczą nazwą – fuzzer – kryje się program, który wprowadza losowe dane do testowanego programu. Te losowane dane są w odpowiedni sposób spreparowane – tzn.  ich wprowadzenie może doprowadzić do pojawienia się błędu. W przypadku stron internetowych będą to np. błędy o niepoprawnej składni języka SQL, pojawią się informacje o polach, tabelach, typie bazy danych. Takie dane już mogą być pomocne dla Intruza.

W artykule są wymienione przykłady takich aplikacji pod SO Windows, którego już (na całe szczęście) nie posiadam ;). Jest natomiast podane rozszerzenie do FireFoxa, dzięki któremu można przeprowadzić taki test. Rozszerzenie sprawdza formularze - zamienia wszystkie checkboxy, selecty czy radio na pola tekstowe, dzięki którym łatwiej można coś wstrzyknąć. Rozszerzenie pozwala na prowadzenie własnych reguł.

Po więcej informacji teoretycznych odsyłam do czasopisma.



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 (:.

Komentarze 4

author mt3o www 16.06.2009 07:09:16

Pomysłowy programista mógłby napisać skrypt, który zamieni pola formularzy i będzie je testował na najpopularniejsze wstrzykiwane sql stringi. curl, regexp i godzina czy dwie pisania...

author firedesign www 16.06.2009 21:08:25

@up
Z tymi czasami w ile byście to napisali to niekiedy jest śmieszne.
W 5 minut najlepiej.

author Irek www 04.07.2009 20:30:40

Zastanawia mnie jak błędy składni SQL i typie bazy mogą pomóc intruzom się dostać do naszej bazy danych...? przecież haker musi poznać hasło do naszej bazy danych ,a fakt że wie jakie są w niej pola w tym mu raczej nie pomoże ;)

author sagittarius www 08.07.2009 11:27:16

Irek - nie masz racji. jezeli masz mocno spieprzony kod na stronie to mozna np. wyciagnac liste uzytkownikow jak juz znasz nazwe tabeli, czy tez - wyczyscic wszystkie dane z bazy - niepotrzebne Ci haslo bo to jest zapisane w pliku config.php na serwerze i np. formularz ktory 'obrabiasz' jest w pliku, ktory includuje config'a

Dodaj komentarz