Vereisten: Gebruik de sqlmap open-source penetratietesttool om website-interfaces te testen op injectierisico's. SQL-injectie betekent dat de webapplicatie de legitimiteit van de invoergegevens van de gebruiker niet beoordeelt of dat de filtering niet streng is, en de aanvaller kan extra SQL-instructies toevoegen aan het einde van de vooraf gedefinieerde query-instructie in de webapplicatie, en illegale operaties kunnen implementeren zonder medeweten van de beheerder, om de databaseserver te misleiden om ongeautoriseerde willekeurige queries uit te voeren, zodat de bijbehorende data-informatie verder wordt verhaald. Kortom, het is datDe backend-interface voert SQL-instructies uit door de gevraagde parameters aan elkaar te koppelen。
Recensie:
sqlmap is een open-source penetratietesttool die het proces van het detecteren en exploiteren van SQL-injectiekwetsbaarheden en het overnemen van databaseservers automatiseert. Het wordt geleverd met een krachtige detectiemotor, veel nichefuncties van de ultieme penetratietester, en een breed scala aan switches, waaronder database-fingerprinting, het ophalen van gegevens uit databases, toegang tot het onderliggende bestandssysteem en het uitvoeren van commando's op het besturingssysteem via out-of-band verbindingen.
SQLMAP werkt direct uit de doos en werkt op elk platformPython versies 2.6, 2.7 en 3.x。
SQLMAP-omgevingsconstructie
Python downloaden:De hyperlink-login is zichtbaar.
SQLMAP open source adres:De hyperlink-login is zichtbaar. SQLMAP-commandodocumentatie:De hyperlink-login is zichtbaar.
Eerst moet de computer Python installeren (weggelaten), en vervolgens het git-commando gebruiken om de broncode te downloaden, als volgt:
Opties:
-h, --help Toon basis hulpbericht en verlaat -----Toon basishulpbericht en verlaat -hh Toon geavanceerde hulpmelding en verlaat----- --versie om het versienummer te zien----------- Showprogramma-versie nummer en afsluiting -v VERBOSE detailniveau (0-6, standaard 1) --Verbositeitsniveau: 0-6 (standaard 1)
Doel:
Er moet ten minste één van de volgende opties worden ingesteld om de doel-URL te bepalen, namelijk: Ten minste één van de volgende opties moet in het SQLMap-operatiecommando zijn opgenomen om deze normaal te kunnen gebruiken
-d DIRECT Connection-string voor directe databaseverbinding------------------- -u URL, --url=URL Doel-URL --------------------- Doel-URL (bijv. "http://www.site.com/vuln.php?id=1") -l LOGFILE Parse doel(en) uit het Burp- of WebScarab-proxylogbestand ---- het doel uit het logbestand van een Burp of andere proxy -x SITEMAPURL ontleedt het doel uit het externe sitemap(.xml)--Parse doel(en) uit het externe sitemap(.xml)-bestand Scan meerdere doelen die in een tekstbestand worden gegeven -------- BULKFILE -r REQUESTFILE HTTP-verzoek laden uit een bestand ---------------HTTP-verzoek laden uit een bestand -g GOOGLEDORK Verwerk Google Dork-resultaten als doel-URL's--- -c CONFIGFILE Laadopties uit een configuratie-INI-bestand -------------- Laadopties uit een configuratie-INI-bestand
Verzoek:
De volgende opties specificeren hoe je verbinding maakt met de bestemmings-URL
--method=METHOD Dwing het gebruik van de gegeven HTTP-methode af (bijv. PUT------------------ --data=DATA Datastring te verzenden via POST met de POST-methode------------------ --param-del=PARA.. Stel het symbool in voor het scheiden van parameterwaarden-------------------- Teken gebruikt voor het splitsen van parameterwaarden --cookie=COOKIE specificeert de HTTP-cookiewaarde ---------------------- HTTP-cookie-headerwaarde --cookie-del=COO.. Teken gebruikt om cookiewaarden te splitsen------------------ Bij het testen van een injectiepunt met SQLMAP kun je de parameter -v x gebruiken om de complexiteit van de echo-informatie aan te geven, die varieert van [0~6] tot 7 niveaus, met een standaard van 1.
0: Alleen pythonfouten worden weergegeven samen met kritieke informatie. 1: Toon zowel basisinformatie als waarschuwingsinformatie. (standaard) 2: Toon de debug-informatie tegelijk. 3: Geïnjecteerde lading wordt tegelijkertijd weergegeven. 4: HTTP-verzoeken tegelijkertijd weergeven. 5: Toon tegelijkertijd de HTTP-responsheader. 6: Toon tegelijkertijd de HTTP-antwoordpagina.
ASP.NET Core injectie-omgeving opzetten
Maak een nieuw webproject aan met ASP.NET Core, schrijf een interface met injectie, en de broncode is als volgt:
Testinterface:
Veelgebruikte penetratietests
Enumereer DBMS-databases
En gebruik SQL Server Profile om de uitvoering van de SQL vast te leggen, zoals weergegeven in de volgende figuur:
selecteer * uit [Gebruikers] waar [Gebruikersnaam] = 'itsvse' UNION ALL SELECT NULL,NULL,CHAR(113)+CHAR(98)+CHAR(122)+CHAR(118)+CHAR(113)+(SELECTEER naam VAN master.. SYSDATABASES VOOR JSON AUTO, INCLUDE_NULL_VALUES)+CHAR(113)+CHAR(113)+CHAR(118)+CHAR(120)+CHAR(113)-- yHIm'
Enumereer de tabellen van de gespecificeerde database
Het commando is als volgt:
Voor complexe HTTP-verzoeken kun jevia de -r-parameter(HTTP-verzoeken uit bestanden laden,Gebruik de Burp Suite-tool om HTTP-pakketverzoeken vast te leggen) om het oorspronkelijke HTTP-verzoek uit een tekstbestand te laden. Hierdoor kun je het gebruik van veel andere opties overslaan (bijvoorbeeld cookie-instellingen, gepubliceerde data, enz.).
SQLMAP is krachtig, zie de documentatie voor meer geavanceerde functies. (Einde)
|