Kategorier
Verktyg

Kom igång med SQLmap

sqlmap

SQLmap är ett av de bästa verktygen för att automatiskt identifiera SQLi (SQL-injections) och ta över databaser. Finns bl.a. en automatisk koppling mot Metasploit så du kan exekvera Metasploit-payloads direkt via databasen (xp_cmdshell etc).

Sqlmap är utvecklat i Python och är ett aktivt projekt på Github (6920 commits).

Följande databaser kan sqlmap hantera:

  • MySQL
  • Oracle
  • PostgreSQL
  • Microsoft SQL Server
  • Microsoft Access
  • IBM DB2
  • SQLite
  • Firebird
  • Sybase
  • SAP MaxDB
  • HSQLDB

Även så stödjer sqlmap fem olika typer av SQL-injektionsattacker:

  • Boolean-based blind
  • Time-based blind
  • Error-based
  • UNION query-based
  • Stacked queries (även känt som piggy-backing)

Installation

Ladda hem senaste utvecklingsversionen med från Github med hjälp av git:

$ git clone https://github.com/sqlmapproject/sqlmap.git sqlmap-dev

Användning

För att se vanliga argument kan -h argumentet användas till sqlmap.py, och vill du se alla argument så använder du -hh.

Vi kan börja med att uppdatera databasen:

$ python sqlmap.py --update
 _
 ___ ___| |_____ ___ ___ {1.0-dev-c31e23e}
|_ -| . | | | .'| . |
|___|_ |_|_|_|_|__,| _|
 |_| |_| http://sqlmap.org
[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program

[*] starting at 11:56:35
[11:56:35] [INFO] updating sqlmap to the latest development version from the GitHub repository
[11:56:35] [INFO] update in progress ..
[11:56:37] [INFO] already at the latest revision 'c31e23e'

[*] shutting down at 11:56:37

Det enklaste sättet att starta en ny genomsökning är att använda wizard. På följande sätt:

$ python sqlmap.py --wizard

Då får du börja med att ange target URL, POST data, svårighetsgrad och enumeration. Sedan så startar attacken.

Två intressant värden som du kan ange är risk samt level. Dessa värden har och göra med hur stor skada du är villig att göra samt hur dold du vill att din attack ska vara. Kör du tester mot en riktig databas så bör du dra ner på risk-värdet och därmed utesluta SQL-kommandon som innefattar UPDATE exempelvis.

Ett problem som många  pen-testare ställs inför är att kartlägga en sajt och alla dess formulär och fält som skickas in. Sqlmap kan identifiera dessa input-parametrar på tre sätt:

  • Via tredjepartsmjukvara såsom Burp
  • Google dorks
  • Crawl

Här följer ett exempel på hur vi använder crawl/spindelfunktionen:

$ python sqlmap.py -u http://example.com --forms --batch --crawl=10 --level=5 --risk=3 --user-agent="Mozilla"

Det var allt för denna gången. Sqlmap är bra på vissa saker och mindre bra på andra, troligtvis kommer du att inse att just crawl-funktionen har en hel del att önska. Men förlita dig då på andra verktyg som är bättre på crawling.

Lämna ett svar

E-postadressen publiceras inte. Obligatoriska fält är märkta *