Prüfen Sie, ob die Anfälligkeit für SQL-Injection-Angriffe via sqlMap
Seite 1 von 4
Zu den gravierendsten und weit verbreitete Schwachstellen in Applikationen eine Note von Bedenken hinsichtlich der SQL-Injection. Obwohl die Theorie und die Empfehlungen nicht schon bestimmte über die Entwicklungen in den letzten zehn / fünfzehn Jahren, bleibt diese Klasse von Schwachstellen ein großer Alptraum für Programmierer und Betreuer von Web-Anwendungen und, zur gleichen Zeit, eine der attraktivsten Ziel für Angreifer und interne extern, und seine Bedeutung sind wahrscheinlich dauerhaft in verschiedenen Top-Ten-Liste der Sicherheitsanfälligkeit ausnutzen, indem angegeben installiert werden OWASP (Open Web Application Security Project).
In diesem Artikel präsentieren wir sqlMap, ein leistungsfähiges Open-Source-Tool, um den Prozess der Entdeckung zu automatisieren und zu nutzen SQL-Injection-Anpassung an das DBMS als Back-End-Anwendung Ziel.
Voraussetzungen
Dieser Artikel an Leser, die bereits über Grundkenntnisse von SQL-Injection zum Ziel haben, in diesem Text werden die Ursachen dieser Verwundbarkeit und / oder Gegenmaßnahmen, um es zu verhindern, behandelt werden, wird nicht als der SQL-Sprache eingeführt werden, deren Kenntnis, wenn auch Basis ist eine notwendige Voraussetzung für eine erfolgreiche Artikels betrachtet.
sqlMap
sqlMap ist ein Open-Source-Tool, das die Schritte der Entdeckung zu automatisieren und zu nutzen Schwachstellen als "SQL Injection" eingestuft, entwickelt komplett in Python verspricht, ist sqlMap daher für alle gängigen Betriebssysteme verfügbar. sqlMap steht für ein komplettes Werkzeug für die Analyse der SQL-Injection, dass:
- der Lage ist, den Typ des Ziel-DBMS (DBMS Fingerprinting) zu erkennen, sein Verhalten entsprechend anzupassen;
- implementiert verschiedene Strategien, die oft komplex, um von Hand zu analysieren, um Schwachstellen zu markieren;
- identifizierten Schwachstellen, ermöglicht Exploits DBMS eine schnelle und, wenn die Randbedingungen zulassen, das Host-System.
Holen Sie sich sqlMap
Aufgrund seiner enormen Popularität, bekommen sqlMap ist äußerst einfach und in der Regel zu einem direkten Download von der Website auf SourceForge, wo Sie ein Archiv (plattformunabhängig) oder ein Binär-Paket für die meisten Distributionen installieren kann gehostet gehen GBU / Linux oder Windows .
Für diejenigen, die verwendet werden soll und immer testen die neueste Entwickler-Version, können Sie fortfahren, um die Subversion-Repository über den Befehl auschecken:
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlMap-devBeachten Sie, dass, da Code in der Entwicklung, das Subversion-Repository enthält Versionen von sqlMap leiden oft an Bugs, die einen großen Einfluss auf die Bedienung der Software.
Forschungsstrategien
sqlMap implementiert drei Strategien, um die Existenz einer zentralen SQL-Injection Schwachstellen zu überprüfen:
- UNION ALL: ein Prinz der Techniken, um eine SQL-Injection zu nutzen ist der Einsatz einer UNION ALL, um auf die legitimen Outcome-Daten aus einer zweiten Abfrage verbinden; sqlMap betroffene Anwendung passt in den Parameter String mit einer Suchanfrage wie UNION ALL SELECT 'a', null ..., zu identifizieren, das Ergebnis, wenn die Ausführung erfolgreich war;
- Stacked-Abfragen: Abfragen ist es, mehrere Abfragen durchführen gestapelt, stapelt sie in einem einzigen Aufruf. Entgegen dem, was wird von vielen, nicht das DBMS beansprucht, um festzustellen, ob es möglich ist, diese Technik aber das Paar DBMS / Web-Framework zu verwenden: bekannt ist das Beispiel der MS SQL Server auf ASP / ASP.NET und PHP, aber diese Funktion ist auch auf PostgreSQL mit ASP / ASP.NET / PHP und MySQL mit ASP.NET. Wenn gestapelt Abfragen aktiviert sind und die Anwendung verwundbar ist, ist es möglich, beliebigen SQL-Codes einfach durch Unterbrechung der aktuellen Abfrage einfügen und setzen einen neuen ein zu folgen (z. B. '; SELECT ..., -);
- Schließende blinde SQL-Injection, nicht alle SQL-Injection sind leicht erkennbar: Die naheliegendste Display-Ausgabe auf der Webseite Fehlerinformationen, die einfache Identifizierung und Exploits und anderen erlauben wird, besser in Umgebungen konfiguriert keine Unterschiede in Leistung, wenn die Abfrage Syntax-Fehler. Letztere sind viel schwieriger zu erkennen und zu nutzen, weil der Angreifer unbedingt gehen müssen "blind", aber auf jeden Fall gibt es einige Tests auf der Booleschen Logik-und Reaktionszeiten, die Sie mit einem hohen Maß an Vertrauen der Basis bestimmen lassen Vorhandensein einer SQL-Injection; sqlMap implementiert mehrere Überprüfungen dieser Art, entworfen, um die meisten der Serie decken.






