#zagadkihakerskie #sqlinjection
Kilka osób zaobserwowało taga, więc być może będzie jeszcze zainteresowana jakimiś wskazówkami do wczorajszej zagadki.
Zwróćcie uwagę, że jak wpiszecie nazwę użytkownika
z dowolnym hasłem, dostaniecie odpowiedź: Nieudane logowanie.
Z kolei gdy wpiszecie jakiegoś innego użytkownika, np.
, w odpowiedzi dostaniecie: Nieudane logowanie
Jest pewna subtelna różnica między tymi odpowiedziami :)
Dodatkowy hint: po wpisaniu nazwy użytkownika
także w odpowiedzi jest Nieudane logowanie.
Kilka osób zaobserwowało taga, więc być może będzie jeszcze zainteresowana jakimiś wskazówkami do wczorajszej zagadki.
Zwróćcie uwagę, że jak wpiszecie nazwę użytkownika
admin
z dowolnym hasłem, dostaniecie odpowiedź: Nieudane logowanie.
Z kolei gdy wpiszecie jakiegoś innego użytkownika, np.
blablabla
, w odpowiedzi dostaniecie: Nieudane logowanie
Jest pewna subtelna różnica między tymi odpowiedziami :)
Dodatkowy hint: po wpisaniu nazwy użytkownika
ad'+'min
także w odpowiedzi jest Nieudane logowanie.
Ostatnio rzuciłem wyzwanie, żeby wykorzystując błąd typu SQL Injection, wykraść hasło użytkownika admin ze strony http://hakerium.cba.pl/zad1/.
Niestety, wyniki okazały się dość słabe, stąd podsyłam krok po kroku jak mógłby wyglądać tok myślenia osoby, która chciałaby przełamać zabezpieczenie tej strony.
Przede wszystkim, w przypadku testowania normalnej strony nie ma takiej sytuacji, jaka była tutaj, tj. że z góry było wiadomo, że podatność na SQL Injection istnieje. Najpierw trzeba ją zweryfikować
@Konalio: Zalinkowane threats.pl jest dość dobre, bardzo popularnym źródłem informacji jest OWASP, polecam zacząć od OWASP TOP 10.
Tak naprawdę istotą tej zagadki było pokazanie, że nawet jeśli informacje ze strony serwera są skąpe, to na podstawie obserwacji jego zachowania w różnych sytuacjach można z bazy wyciągnąć dane jeśli istnieje podatność na SQL Injection.
A jak się przed SQL Injection bronić? Zawsze mówiło się o potrzebie odpowiedniego enkodowania danych przed wrzuceniem ich do bazy. Najlepszą jednak metodą i najpewniejszą jest stosowanie parametryzowanych zapytań (prepared statements). Każdy liczący