SQLmap Tutorial

Samodzielne uruchomienie sqlmap nie jest trudne.
Ten tutorial zabierze cię od nooba do ninja z tym potężnym narzędziem do testowania wtrysku sql.

Sqlmap jest narzędziem opartym na pythonie, co oznacza, że zwykle będzie działać na każdym systemie z pythonem. Jednak my lubimy Linuksa, a w szczególności Ubuntu, po prostu sprawia, że łatwo jest robić rzeczy. Python jest już zainstalowany w Ubuntu. Jest to to samo narzędzie, którego używamy na naszej stronie testowej online sql injection.

Aby rozpocząć pracę z sqlmap, wystarczy pobrać narzędzie, rozpakować je i uruchomić komendę z niezbędnymi opcjami. Ponieważ wśród Was mogą być użytkownicy Windowsa, zacznę od tego, jak uruchomić instalację w Ubuntu. Łatwo jest rozpocząć pracę z systemem Ubuntu Linux, nawet jeśli myśl o Linuksie wywołuje dreszcze strachu. Kto wie, może nawet go polubisz.

Spis treści:
– Zainstaluj SQLmap
– HTTP GET
– Uzyskiwanie blokady
– Tabele bazy danych
– Zrzucanie danych
– Porady
– Verbose output
– Uwierzytelnianie bazy danych
– Uwierzytelnianie połączenia DB

Instalacja SQLmap

Krok 1: Zdobądź system operacyjny oparty na Linuksie

Jeśli zamierzasz uruchomić SQLmap na Windowsie z Pythonem, upewnij się, że masz zainstalowanego Pythona i przejdź do następnego kroku. W przeciwnym razie, uruchom swój system Linux. Albo zainstaluj maszynę wirtualną (Ubuntu lub Kali zalecane) w systemie Windows (Virtualbox / VMware / Parrallels) lub uruchom pulpit Linuksa.

Jeśli używasz Microsoft Windows jako głównego systemu operacyjnego, wygodnie i prosto jest uruchomić instalację Ubuntu Linux (lub Kali Linux) w maszynie wirtualnej. Możesz wtedy grać z sqlmap, nmap, nikto i openvas wraz z setką innych potężnych narzędzi bezpieczeństwa open source.

Krok 2: Instalacja SQLmap

Python jest preinstalowany w Ubuntu, więc wszystko, co musisz zrobić, to sklonować najnowsze repozytorium z git i rozpocząć testy.

Zmień katalog i uruchom skrypt pythona, aby upewnić się, że wszystko wygląda dobrze.

Jeśli nie widzisz czegoś takiego jak wyjście powyżej, upewnij się, że python działa (spróbuj python -V), aby sprawdzić wersję i jesteś we właściwej lokalizacji. Teraz przejdźmy dalej, to była łatwa część.

Aby uzyskać pełną listę dostępnych opcji, uruchom python sqlmap.py -h.

Uruchamianie SQLmap

Proste testy oparte na HTTP GET

W tym prostym teście użyjemy standardowego HTTP GETzapytania opartego na URI z parametrem (?id=5). To przetestuje różne metody SQL injection przeciwko parametrowi id.

python sqlmap.py -u 'http://mytestsite.com/page.php?id=5'

W wynikach możemy zobaczyć różne metody użyte przeciwko parametrowi.

Blokowanie przez Web Application Firewall – WAF

Spróbuj użyć innego agenta użytkownika niż domyślny sqlmap z parametrem --randomagent.

Pobierz tabele z bazy danych

SQLmap można używać do testowania i wykorzystywania SQL Injection, robiąc takie rzeczy, jak wyciąganie danych z baz danych, aktualizowanie tabel, a nawet uruchamianie powłok na zdalnych hostach, jeśli wszystkie kaczki są w kolejce.

Pobierzmy tabele z bazy danych, wykorzystując lukę SQL Injection, którą potwierdziliśmy powyżej. Jak zobaczysz na poniższym wyjściu, możemy kontynuować testowanie przeciwko celowi bez konieczności ponownego testowania luki. SQLmap wykorzystuje informacje, które zna na temat strony, do dalszego wykorzystania docelowej bazy danych.

Aby pobrać dane, po prostu dodajemy parametr do poprzedniej komendy. Dodając --tables możemy spróbować pobrać wszystkie tabele.

Zrzuć dane

Aby uzyskać dane po prostu rozszerzamy naszą komendę. Dodając -T users skupimy się na tabeli users, gdzie być może uda nam się uzyskać jakieś dane uwierzytelniające. Dodanie --dump spowoduje, że SQLmap pobierze wszystkie dane z tabeli users, najpierw zostaną wyliczone kolumny, a następnie dane zostaną wyrzucone z kolumn.

Porady SQLmap – Zrób ninję na swoich testach SQL Injection

Wyjście serbose

Podczas testowania SQL Injection, często konieczne jest ręczne zagłębianie się w zapytania, aby określić problemy z testem lub potwierdzić lub nawet dalej wykorzystać odkryte wstrzyknięcie. Możliwość zwiększenia szczegółowości danych wyjściowych SQLmap pomoże w tych testach.

Poprzez zwiększenie szczegółowości do 4 możesz uzyskać żądania HTTP, z 5 zobaczysz również nagłówki odpowiedzi HTTP, a 6 pokaże pełną odpowiedź HTTP. Oczywiście, może to być bardzo hałaśliwe, ale czasami trzeba zobaczyć, co się dzieje.

Got Database Credentials?

Ta przydatna wskazówka pozwala na bezpośrednie połączenie z bazą danych i zrzucenie danych takich jak użytkownicy, bazy danych lub tabele. Dzięki temu nie musisz pamiętać składni SQL dla bazy danych lub mieć zainstalowanego klienta. SQLmap wykona ciężką pracę, działając jako klient bazy danych i zrzucając dane.

Szczyty połączeń do baz danych:

MySQL, Oracle, Microsoft SQL Server, PostgreSQL
DBMS://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME
SQLite, Microsoft Access
DBMS://DATABASE_FILEPATH

Wypełnianie powłok i nie tylko

SQLmap ma absurdalną liczbę opcji i jest niesamowitym narzędziem do zjednoczenia się z bazą danych. Oprócz skakania po powłokach na docelowym hoście, możesz wysyłać żądania przez tor, automatycznie znajdować iniekcje w odpowiedziach stron, przeszukiwać strony i oczywiście przeprowadzać testy oparte na HTTP POST. Te przykłady zaledwie zarysowują powierzchnię. Więcej przykładów można znaleźć na doskonałej stronie wiki na githubie.

Wstrzykiwanie baz danych nadal jest ulubionym celem atakujących.

Użyj naszego skanera SQL Injection, aby przetestować wstrzykiwalne parametry w sieci URI.

Testy następnego poziomu z zaawansowanymi skanerami podatności bezpieczeństwa.

Zaufane narzędzia. Hostowane dla łatwego dostępu.

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.