SQLmap Tutorial

Det är inte svårt att köra sqlmap själv.
Denna tutorial tar dig från noob till ninja med detta kraftfulla verktyg för testning av sql-injektion.

Sqlmap är ett pythonbaserat verktyg, vilket innebär att det vanligtvis körs på alla system med python. Vi gillar dock Linux och specifikt Ubuntu, det gör det helt enkelt lätt att få saker gjorda. Python är redan installerat i Ubuntu. Det här är samma verktyg som vi använder på vår testplats för sql-injektion online.

För att komma igång med sqlmap handlar det om att ladda ner verktyget, packa upp det och köra kommandot med de nödvändiga alternativen. Eftersom det kanske finns Windows-användare bland er kommer jag först att börja med hur man får igång en Ubuntu-installation. Det är lätt att komma igång med ett Ubuntu Linux-system, även om tanken på Linux skickar rysande spasmer av rädsla. Vem vet, du kanske till och med gillar det.

Innehåll:
– Installera SQLmap
– HTTP GET
– Blockeras
– Databastabeller
– Dumpa data
– Tips
– Verbose output
– Databasreferenser
– DB Connection Credentials

Installera SQLmap

Steg 1: Skaffa ett Linuxbaserat operativsystem

Om du ska köra SQLmap på Windows med Python, se till att du har Python installerat och hoppa ner till nästa steg. Annars får du igång ditt Linuxsystem. Installera antingen en virtuell Linux-maskin (Ubuntu eller Kali rekommenderas) på Windows (Virtualbox/VMware/Parrallels) eller starta upp ditt Linux-datorbord.

Om du kör Microsoft Windows som ditt huvudoperativsystem är det bekvämt och enkelt att köra en installation av Ubuntu Linux (eller Kali Linux) i en virtuell maskin. Du kan sedan leka med sqlmap, nmap, nikto och openvas tillsammans med hundra andra kraftfulla säkerhetsverktyg med öppen källkod.

Steg 2: SQLmap-installation

Python är förinstallerat i Ubuntu, så allt du behöver göra är att klona det senaste repositoriet från git och börja testa.

Byt till katalogen och kör pythonskriptet för att se till att allt ser bra ut.

Om du inte får se något som liknar utmatningen ovan, se till att python fungerar (prova python -V) för att kontrollera versionen och att du är på rätt plats. Nu går vi vidare, detta var den enkla delen.

För att få en fullständig lista över tillgängliga alternativ kör python sqlmap.py -h.

Körning av SQLmap

Simpelt HTTP GET-baserat test

I det här enkla testet kommer vi att använda en standard HTTP GETbaserad förfrågan mot en URI med en parameter (?id=5). Detta kommer att testa olika SQL-injektionsmetoder mot parametern id.

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

I resultaten kan vi se de olika metoderna som används mot parametern.

Försök att blockeras av Web Application Firewall – WAF

Prova att använda en annan användaragent än standard sqlmap med parametern --randomagent.

Hämta databastabellerna

SQLmap kan användas för att testa och utnyttja SQL-injektion och göra saker som att hämta data från databaser, uppdatera tabeller och till och med öppna skal på fjärrvärdar om alla ankor är i linje.

Låt oss hämta tabellerna från databasen med hjälp av SQL-injektionssårbarheten som vi bekräftade ovan. Som du ser i resultatet nedan kan vi fortsätta att testa mot målet utan att behöva testa sårbarheten på nytt. SQLmap använder information som den känner till om webbplatsen för att ytterligare utnyttja måldatabasen.

För att hämta data lägger vi helt enkelt till en parameter till det föregående kommandot. Genom att lägga till --tables kan vi försöka hämta alla tabeller.

Dump the data

För att hämta data utökar vi helt enkelt vårt kommando. Genom att lägga till -T users fokuserar vi på tabellen users där vi kanske kan få fram några autentiseringsuppgifter. Genom att lägga till --dump får SQLmap order om att hämta alla data från tabellen users, först räknas kolumnerna upp och sedan dumpas data från kolumnerna.

SQLmap Tips – Go ninja on your SQL Injection Testing

Verbose output

När man testar för SQL Injection är det ofta nödvändigt att gräva i förfrågningarna manuellt för att fastställa problem med testet eller för att bekräfta eller till och med ytterligare utnyttja en upptäckt injektion. Att kunna öka verbosity för din SQLmap-utgång hjälper till med denna testning.

Om du ökar verbosity till 4 kan du få fram HTTP-förfrågningarna, med 5 ser du även HTTP-svarsrubrikerna och med 6 visas det fullständiga HTTP-svaret. Självklart kan detta bli superstörande men ibland behöver du se vad som händer.

Got Database Credentials?

Det här praktiska tipset gör att du kan ansluta till databasen direkt och dumpa data som användare, databaser eller tabeller. Det fina med detta är att du inte behöver komma ihåg SQL-syntaxen för databasen eller ha en klient installerad. SQLmap gör det tunga jobbet och agerar som en databasklient för att dumpa data.

DB-anslutningssträngar:

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

Popping Shells and More

SQLmap har ett löjligt antal alternativ, och är ett fantastiskt verktyg för att bli ett med en databas. Förutom att ta fram skal på målvärden kan du skicka förfrågningar via tor, hitta injektioner i sidresponser automatiskt, spindla webbplatser och, naturligtvis, utföra HTTP POST-baserade tester. Dessa exempel skrapar bara på ytan. Hitta fler exempel på den utmärkta github-wikisidan.

SQL-injektion fortsätter att vara ett favoritmål för angripare.

Använd vår SQL-injektionsscanner för att testa för injicerbara parametrar på en webb-URI.

Nästa nivå av testning med avancerade säkerhetssårbarhetsscanners.

Trustade verktyg. Hosted för enkel åtkomst.

Lämna ett svar

Din e-postadress kommer inte publiceras.