SQLMap – Automatische GET/POST/URL SQL Injection

SQLMap ist ein Open Source Pythonscript, mit welchem man Webseiten auf SQL Injection Anfälligkeit prüfen kann. Es gibt verschiedene Angriffstypen mit denen SQLMap zurecht kommt. SQLMap führt automatisiert einen SQL Injection Angriff gegen verschiedene Datenbanksysteme aus.

SQL Injection per GET Parameter

Relativ einfach und oft können SQL Injection Angriffe über die GET Parameter durchgeführt werden. Dabei reicht SQLMap bereits die URL und es probiert selbständig alle Parameter aus. Man kann die zu testenden Parameter auch manuell begrenzen. (Parameter -p )

sqlmap.py -u "http://hackit.gehaxelt.in/sqli/level1.php?id=1" -p id

SQL Injection per POST Parameter

Da es laut dem HTTP Standard nicht nur GET, sondern auch POST-Requests gibt, können diese ebenso gegen SQL Injection anfällig sein. Hierfür muss man SQLMap sagen, welche POST Parameter im angreifbaren Script verarbeitet werden. Diese Option trifft man über die Parameter „–method“, „–data“ & „-p“:

sqlmap.py -u "http://hackit.gehaxelt.in/sqli/level5.php" --method=POST --data="id" -p id

SQL Injection in REST-style URLs

Man kann eine URL per .htaccess oder per entsprechendem Framework in den REST-Style bringen, sodass die URL so ähnlich aussehen kann:

http://[HOST]/partner/id/100/name/helloworld

Hier hat SQLMap ein paar Schwierigkeiten zu erkennen, wo es die SQL Injection ansetzen soll. Deswegen können bzw. müssen wir manuell nachhelfen in dem wir ein Asterix ( * ) an die gewünschten Stelle(n) packen.

sqlmap.py -u "http://[HOST]/partner/id/100*/name/helloworld*"

Danach kann SQLMap auch die Webanwendungen hinter diesen URLs auf SQL Injection untersuchen.

~ Sebastian