|
|
Publicerad på 2023-06-17 11:10:55
|
|
|
|

Krav: Använd sqlmap:s öppna källkodsverktyg för penetrationstestning för att testa webbplatsgränssnitt för injektionsrisker. SQL-injektion innebär att webbapplikationen inte bedömer användarens indatas legitimitet eller att filtreringen inte är strikt, och angriparen kan lägga till ytterligare SQL-satser i slutet av frågesatsen som definierats i förväg i webbapplikationen, och implementera olagliga operationer utan administratörens vetskap, för att lura databasservern att utföra obehöriga godtyckliga förfrågningar och därmed ytterligare få motsvarande datainformation. Kort sagt, det är detBackendgränssnittet kör SQL-satser genom att sy ihop de begärda parametrarna。
Recension:
sqlmap är ett öppen källkods penetrationstestverktyg som automatiserar processen att upptäcka och utnyttja SQL-injektionssårbarheter samt ta över databasservrar. Den levereras med en kraftfull detektionsmotor, många nischfunktioner från den ultimata penetrationstestaren och ett brett utbud av switchar, inklusive databasfingeravtryck, att hämta data från databaser, att få tillgång till det underliggande filsystemet och att utföra kommandon på operativsystemet via out-of-band-anslutningar.
SQLMAP fungerar direkt ur lådan och fungerar på alla plattformarPython-versionerna 2.6, 2.7 och 3.x。
SQLMAP-miljökonstruktion
Python-nedladdning:Inloggningen med hyperlänken är synlig.
SQLMAP öppen källkodsadress:Inloggningen med hyperlänken är synlig. SQLMAP-kommandodokumentation:Inloggningen med hyperlänken är synlig.
Först måste datorn installera Python (utelämnat), och sedan använda git-kommandot för att ladda ner källkoden, enligt följande:
Alternativ:
-h, --hjälp Visa grundläggande hjälpmeddelande och avsluta -----Visa grundläggande hjälpmeddelande och avsluta -hh Visa avancerat hjälpmeddelande och avsluta----- --version för att se versionsnumret----------- Showprogrammets versionsnummer och avslutning -v VERBOSE detaljnivå (0-6, standard 1) --Ordrikedom: 0-6 (standard 1)
Mål:
Minst ett av följande alternativ måste sättas för att bestämma mål-URL:en, nämligen: Minst ett av följande alternativ måste inkluderas i SQLMap-operationskommandot för att använda det normalt
-d DIRECT Connection-sträng för direkt databasanslutning------------------- -u URL, --url=URL Mål-URL --------------------- Mål-URL (t.ex. "http://www.site.com/vuln.php?id=1") -l LOGFILE Parse mål(er) från Burp eller WebScarab proxy-loggfil ---- målet från loggfilen för en Burp eller annan proxy -x SITEMAPURL tolkar målet från filen fjärrsajtkarta(.xml --Stolka mål(er) från fjärrsajtkarta(.xml)-filen Skanna flera mål som ges i en textfil -------- BULKFILE -r REQUESTFILE Ladda HTTP-förfrågan från en fil ---------------Ladda HTTP-förfrågan från en fil -g GOOGLEDORK Processa Google Dork-resultat som mål-URL:er--- -c CONFIGFILE Ladda alternativ från en konfigurations-INI-fil -------------- Ladda alternativ från en konfigurations-INI-fil
Begäran:
Följande alternativ specificerar hur man ansluter till destinations-URL:en
--method=METHOD Tvinga användning av given HTTP-metod (t.ex. PUT------------------ --data=DATA-datasträng som ska skickas via POST med POST-metoden------------------ --param-del=PARA.. Sätt symbolen för att separera parametervärden-------------------- Tecken som används för att dela parametervärden --cookie=COOKIE specificerar HTTP-cookievärdet ---------------------- HTTP-cookiehuvudvärdet --cookie-del=COO.. Tecken som används för att dela upp cookie-värden------------------ När du testar en injektionspunkt med SQLMAP kan du använda parametern -v x för att specificera komplexiteten i ekoinformationen, som varierar från [0~6] till 7 nivåer, med standardvärdet 1.
0: Endast pythonfel visas tillsammans med kritisk information. 1: Visa både grundläggande information och varningsinformation. (standard) 2: Visa felsökningsinformationen samtidigt. 3: Injicerad nyttolast visas samtidigt. 4: Visa HTTP-förfrågningar samtidigt. 5: Visa HTTP-svarsheadern samtidigt. 6: Visa HTTP-svarssidan samtidigt.
ASP.NET Kärninjektionsmiljö
Skapa ett nytt webbprojekt med ASP.NET Core, skriv ett gränssnitt med injektion, och källkoden är följande:
Testgränssnitt:
Vanligt använda penetrationstester
Räkna upp DBMS-databaser
Och använd SQL Server Profile för att fånga exekveringen av SQL, som visas i följande figur:
välj * från [Användare] där [Användarnamn] = 'itsvse' UNION ALLA VÄLJ NULL,NULL,CHAR(113)+CHAR(98)+CHAR(122)+CHAR(118)+CHAR(113)+(VÄLJ namn FRÅN master.. sysdatabaser FÖR JSON AUTO, INCLUDE_NULL_VALUES)+CHAR(113)+CHAR(113)+CHAR(118)+CHAR(120)+CHAR(113)-- yHIm'
Räkna upp tabellerna i den angivna databasen
Kommandot är följande:
För komplexa HTTP-förfrågningar kan duvia -r-parametern(Laddar HTTP-förfrågningar från filer,Använd verktyget Burp Suite för att fånga paket-HTTP-förfrågningar) för att ladda den ursprungliga HTTP-förfrågan från en textfil. Detta gör att du kan hoppa över användningen av många andra alternativ (t.ex. cookieinställningar, publicerad data, etc.).
SQLMAP är kraftfullt, se dokumentationen för mer avancerade funktioner. (Slut)
|
Föregående:EF 6 exekverar inbyggda SQL-satser, problem med parameterinjektionNästa:[Överför] till MySQL Avancerat: optimera tabellkommandot
|