W ostatnim czasie ataki, takie jak SQL Injection, stały się coraz poważniejszym problemem dla bezpieczeństwa aplikacji internetowych i baz danych. Ataki tego typu pozwalają osobom nieupoważnionym na uzyskanie dostępu do danych w bazie poprzez manipulację zapytaniami SQL wysyłanymi przez formularze na stronach internetowych. Konsekwencje takiego ataku mogą być bardzo poważne, prowadząc do ujawnienia poufnych informacji, utraty danych oraz zagrożenia integralności systemu. W niniejszym artykule skupimy się na roli narzędzia Wireshark w wykrywaniu i analizowaniu ataków typu SQL Injection poprzez monitorowanie ruchu sieciowego.
Zapraszamy na darmowe szkolenie "Grafana dla początkujących".
Widzimy się 17 października o 13:00! . Zapisz się: https://asdevops.pl/s43/
Przykład praktyczny
Analiza pierwszego interesującego nas pakietu
Na początku nalezy zidentyfikować adres lub adresy IP biorące udział w tym ataku polegającym na wstrzyknięciu kodu SQL.
Ruch źródłowy został przedstawiony kolorem czerwonym, natomiast ruch docelowy kolorem niebieskim. Widzimy iż adres IP atakującego to 10.0.2.15
W tym momencie należy sprawdzić czy w danych nie znajdują się typowe zapytania SQL
Okazało się iż takowe zapytanie występuje
Z powyższego wynika iż osoba przeprowadzająca atak wprowadziła do pola wyszukiwania identyfikatora użytkownika w docelowym miejscu o adresie IP 10.0.2.15 zapytanie (1=1), celem sprawdzenia, czy aplikacja podatna jest na atak typu wstrzyknięcie kodu SQL. Zamiast otrzymać komunikat o błędzie logowania, aplikacja zwróciła rekord z bazy danych. Atakujący uzyskał potwierdzenie, że może wprowadzać polecenia SQL, a baza danych odpowiada na nie.
Analiza kolejnego pakietu gdzie w Info mamy GET /dvwa/vulnerabilities/sql
Powtarzamy procedurę wyszukiwania
W tym przypadku pojawia się o wiele więcej informacji
W powyższym przypadku osoba przeprowadzająca manipulację wprowadziła zapytanie (1′ lub 1=1 union select database(), user()#) w polu UserID w obiekcie, do którego kierowano atak, z adresem IP 10.0.2.15. W wyniku nie otrzymano standardowego komunikatu o błędzie logowania, lecz aplikacja zwróciła zestaw informacji, które mogą być istotne dla atakującego.
Baza danych nosi nazwę dvwa a użytkownik bazy danych to root@localhost. Dodatkowo, aplikacja wyświetla bogatą listę kont użytkowników, co stanowi potencjalne zagrożenie dla bezpieczeństwa.
Analiza trzeciego z kolei pakietu dostarcza informacji na temat tabeli
W tym przypadku poszukujemy użytkownika
Z powyższego screena wynika iż podczas ataku, osoba przeprowadzająca manipulację wprowadziła zapytanie (1′ lub 1=1 union select null, table_name from information_schema.tables#) w polu UserID w celu wyświetlenia wszystkich tabel w bazie danych. To doprowadziło do znacznego zwiększenia ilości danych wyjściowych, ponieważ atakujący nie określił żadnych dodatkowych parametrów, co skutkowało wyświetleniem dużej ilości tabel.
Analiza ostatniego pakietu gdzie dowiadujemy się tego co dla wielu jest najciekawsze
Z powyższego odczytujemy iż w trakcie ataku, jednostka inicjująca manipulację wprowadziła zapytanie (1′ lub 1=1 union select user, password from users#) w polu UserID w celu 10.0.2.15, z zamiarem pobrania nazw użytkowników oraz skrótów haseł.
Pozostaje jedynie skorzystac ze strony internetowej takiej jak https://crackstation.net/ aby odczytać skrót hasha. Biorąc przykładowy hash 0d107d09f5bbe40cade3de5c71e9e9b7 po chwili odczytujemy wynik letmein
Podsumowanie
Analiza ataków SQL injection przy użyciu Wireshark stanowi kluczowy element strategii zapewnienia bezpieczeństwa systemów informatycznych. Poprzez wykorzystanie możliwości monitorowania ruchu sieciowego, Wireshark umożliwia szybką identyfikację ataków tego typu, co z kolei pozwala na skuteczną reakcję i wzmocnienie zabezpieczeń. Dzięki Wiresharkowi, administratorzy mogą śledzić zapytania SQL wysyłane do serwera, a także wykrywać niebezpieczne wzorce, co przekłada się na szybką reakcję i zabezpieczenie systemu przed dalszymi próbami ataku. Analiza ataków SQL injection przy użyciu Wiresharka ma istotne znaczenie dla podniesienia ogólnego poziomu bezpieczeństwa w organizacji poprzez eliminację podatności oraz wcześniejsze wykrywanie potencjalnych zagrożeń.