Wymagania: Użyj narzędzia sqlmap open-source do testowania penetracyjnego do testowania interfejsów stron pod kątem ryzyka wstrzykiwania. Injection SQL oznacza, że aplikacja internetowa nie ocenia legalności danych wejściowych użytkownika lub filtrowanie nie jest ścisłe, a atakujący może dodać dodatkowe instrukcje SQL na końcu instrukcji zapytania zdefiniowanych wcześniej w aplikacji webowej i wdrażać nielegalne operacje bez wiedzy administratora, aby oszukać serwer bazy danych i wykonać nieautoryzowane, arbitralne zapytania w celu uzyskania odpowiednich informacji. Krótko mówiąc, jestInterfejs backendowy wykonuje instrukcje SQL poprzez łączenie żądanych parametrów。
Recenzja:
sqlmap to otwartoźródłowe narzędzie do testów penetracyjnych, które automatyzuje proces wykrywania i wykorzystywania luk w zakresie wtrzyknięć SQL oraz przejmowania serwerów baz danych. Wyposażony jest w potężny silnik detekcji, wiele niszowych funkcji ultimate penetration tester oraz szeroki zakres przełączników, w tym fingerprinting bazy danych, pobieranie danych z baz danych, dostęp do systemu plików oraz wykonywanie poleceń w systemie operacyjnym za pomocą połączeń poza pasmem.
sqlmap działa od razu po wyjęciu z pudełka i działa na każdej platformieWersje Pythona 2.6, 2.7 i 3.x。
Budowa środowiska sqlmap
Pobierz Python:Logowanie do linku jest widoczne.
Adres open source SQLMAP:Logowanie do linku jest widoczne. Dokumentacja poleceń SQLMAP:Logowanie do linku jest widoczne.
Najpierw komputer musi zainstalować Pythona (pominięty), a następnie użyć polecenia git, aby pobrać kod źródłowy, w następujący sposób:
Opcje:
-h, --help Pokaż podstawową wiadomość pomocy i wyjście ----- Pokaż podstawową wiadomość pomocy i wyjdź -hh Pokaż wiadomość zaawansowanej pomocy i wyjdź----- --wersji, aby zobaczyć numer wersji----------- Pokaż numer wersji programu i zakończenie -v ROZŁĄCZNY poziom szczegółowości (0-6, domyślny 1) --Poziom rozwlekłości: 0-6 (domyślny 1)
Cel:
Aby określić docelowy adres URL, należy ustawić co najmniej jedną z następujących opcji, a mianowicie: Przynajmniej jedna z poniższych opcji musi być zawarta w poleceniu operacyjnym SQLMap, aby móc go normalnie używać
-d DIRECT String Connection dla bezpośredniego połączenia z bazą danych------------------- -u URL, --url=URL Target URL --------------------- Target URL (np. "http://www.site.com/vuln.php?id=1") -l LOGFILE Parsuj cel(y) z pliku loga proxy Burp lub WebScarab ---- cel z pliku logu Burp lub innego proxy -x SITEMAPURL parsuje cel z pliku zdalnej sitemap(.xml) --Parsuje cel(e) z zdalnego pliku sitemap(.xml) Skanuj wiele celów podanych w pliku tekstowym -------- pliku BULKFILE -r REQUESTFILE Załaduj żądanie HTTP z pliku ---------------Załaduj żądanie HTTP z pliku -g GOOGLEDORK Przetworz wyniki Google dork jako docelowe adresy URL--- -c CONFIGFILE Opcje ładowania z pliku konfiguracyjnego INI -------------- Opcje ładowania z pliku konfiguracyjnego INI
Prosić:
Poniższe opcje określają, jak połączyć się z docelowym adresem URL
--method=METHOD Wymuszenie użycia danej metody HTTP (np. PUT------------------ --data=DATA Ciąg danych do wysłania przez POST metodą POST------------------ --param-del=PARA.. Ustaw symbol do rozdzielania wartości parametrów-------------------- Znak używany do rozdzielania wartości parametrów --cookie=COOKIE określa wartość cookie HTTP ---------------------- nagłówka HTTP cookie --cookie-del=COO.. Znak używany do dzielenia wartości ciasteczek------------------ Podczas testowania punktu wtrysku za pomocą SQLMAP można użyć parametru -v x do określenia złożoności informacji o echo, która waha się od [0~6] do 7 poziomów, z domyślnym poziomem 1.
0: Wyświetlane są tylko błędy pythona wraz z kluczowymi informacjami. 1: Wyświetlanie zarówno podstawowych informacji, jak i informacji ostrzegawczych. (domyślnie) 2: Wyświetlanie informacji debugowania jednocześnie. 3: Wstrzyknięty ładunek jest wyświetlany jednocześnie. 4: Wyświetlanie zapytań HTTP jednocześnie. 5: Jednocześnie wyświetlić nagłówek odpowiedzi HTTP. 6: Jednocześnie wyświetlić stronę odpowiedzi HTTP.
ASP.NET Konfiguracja środowiska do wtrysku rdzeni
Stwórz nowy projekt webowy używając ASP.NET Core, napisz interfejs z injection, a kod źródłowy wygląda następująco:
Interfejs testowy:
Powszechnie stosowane testy penetracyjne
Enumerate DBMS databases
I użyj profilu SQL Server do rejestrowania wykonania SQL, jak pokazano na poniższym rysunku:
wybierz * z [Users], gdzie [Username] = 'itsvse' UNION ALL SELECT NULL,NULL,CHAR(113)+CHAR(98)+CHAR(122)+CHAR(118)+CHAR(113)+(WYBIERZ nazwę OD mastera.. sysdatabases FOR JSON AUTO, INCLUDE_NULL_VALUES)+CHAR(113)+CHAR(113)+CHAR(118)+CHAR(120)+CHAR(113)-- yHIm'
Wypisz tabele określonej bazy danych
Polecenie brzmi następująco:
Dla złożonych żądań HTTP możeszza pomocą parametru -r(Ładowanie żądań HTTP z plików,Użyj narzędzia Burp Suite do przechwytywania zapytań HTTP pakietów) aby załadować oryginalne żądanie HTTP z pliku tekstowego. Pozwala to pominąć wiele innych opcji (np. ustawień plików cookie, opublikowanych danych itp.).
sqlmap jest potężny, zobacz dokumentację po bardziej zaawansowane funkcje. (Koniec)
|