Advanced SQL Injection Scanner - IIS & DBO
Erweiterte Mechanismen der SQL -Injektion, die von böswilligen Benutzern verwendet werden können, um kritische Informationen zu erhalten und sie zu nutzen, um die vollständige Kontrolle über ein Computersystem zu erhalten.
Erläuterung
In diesem Artikel wird nicht versucht, eine neue Technik des Kompromisses von Computersystemen zu erklären, die Technik der SQL -Injektion ist sehr alt und bekannt, aber gleichzeitig kann sehr leistungsfähig sein. Der Artikel spiegelt auch nicht die Nutzung einer unbekannten Verwundbarkeit wider, die bereits bekannt ist und bereits gemeldet wurde.
Die Kombination dieser Technik mit einem IIS -Webserver mit erhöhten Benutzerberechtigungen (DBO) in der Microsoft SQL Server -Datenbank kann zu einem vollständigen Kontrollverlust des betroffenen Servers führen.
In diesem Artikel wird versucht, das potenzielle Risiko zu erklären, das durch Missverständnis einer SQL -Datenbank verursacht wird, die über einen IIS -Webserver mit einer externen Webseite interagiert und Einzelheiten darüber gibt, wie böswillige Benutzer davon profitieren können.
Kurze Zusammenfassung (Wikipedia)
Die SQL-Injektion ist eine Code-Injektionstechnik, mit der datengesteuerte Anwendungen angreift, bei denen schändliche SQL-Anweisungen zur Ausführung in ein Eingabefeld eingefügt werden (z. B. um den Datenbankinhalt in den Angreifer abzugeben). Die SQL -Injektion muss eine Sicherheitsanfälligkeit in der Software einer Anwendung ausnutzen, beispielsweise wenn die Benutzereingabe entweder für String -Literal -Escape -Zeichen, die in SQL -Anweisungen eingebettet sind, fälschlicherweise gefiltert wird, oder die Benutzereingabe nicht stark getippt und unerwartet ausgeführt wird. Die SQL -Injektion ist meist als Angriffsvektor für Websites bezeichnet, kann jedoch verwendet werden, um jede Art von SQL -Datenbank anzugreifen.
SQL -Injektionsangriffe ermöglichen es den Angreifern, die Identität zu fällen, vorhandene Daten zu manipulieren, Ablehnungsprobleme wie Entspannungstransaktionen oder Ändern von Guthaben zu verursachen, die vollständige Offenlegung aller Daten zum System zu ermöglichen, die Daten zu zerstören oder sie ansonsten nicht verfügbar zu machen und Administratoren des Datenbankservers zu werden.
Verwundbarkeit
Angenommen, auf der Webseite gibt es Sicherheitsprobleme bei der Übergabe von Parametern, um die SQL-Injektion zu ermöglichen, das Hauptproblem besteht darin, dass der IIS-Webserver dem Benutzer kritische Informationen anmelden kann, indem eine ungültige Transact-SQL-Konvertierungsfunktion verwendet wird. Stellen Sie sich die folgende URL vor, bei der der ID -Parameter die Injektion zulässt.
https://www.victim.com/index.aspx?id=1
Ein böswilliger Benutzer könnte den Wert des ID-Parameters durch die Transact-SQL Convert-Funktion überschreiben
konvertieren (int, (select+user));
Die endgültige URL wäre von diesem Stil:
https://www.victim.com/index.aspx?id=convert(Int, (select+user));-
Die Konvertierungsfunktion versucht, eine Zeichenfolge in Ganzzahl umzuwandeln, was eine Ausnahme verursacht, bei der der IIS -Webserver einen ernsthaften Fehler macht, der den Wert der ausgeführten Abfrage zeigt.
Eine typische Ausgabe wäre so etwas:
Die Konvertierung ist fehlgeschlagen, wenn der Nvarchar -Wert '{Benutzer}' in Datentyp int konvertiert wird.
Wie wir sehen können, entspricht der Wert {Benutzer} dem aktuellen Wert des Benutzers der Datenbank. Zusätzlich zu all dem, wenn der zurückgegebene Wert ist, informiert DBO, dass der Datenbankbenutzer maximale Ausführungsrechte verfügt, sodass Shell-Befehle mit der XP_CMDSHELL-Transakt-SQL-Funktion ausgeführt werden können.
Die Verwendung einer Webseite mit einem Datenbankbenutzer mit maximalen Berechtigungen ist ein schwerwiegender Sicherheitsfehler, bei dem Systemadministratoren nicht fallen sollten.
Zusammenfassend könnte man sagen, dass die Verwundbarkeit aus drei Faktoren besteht:
- Fehler beim Umgang mit den GET/Post -Parametern, die die SQL -Injektion ermöglichen. (Softwareentwickler)
- IIS -Webserver, auf dem die Konvertierungsfunktionsinformationen angezeigt werden. (Microsoft)
- Verwenden Sie einen Datenbankbenutzer auf der Webseite mit maximalen Berechtigungen. (Systemadministrator/Softwareentwickler)
Version 4.0 (privat)
Die erweiterte Version 4.0 des Scanners ist in einem privaten Repository (von Sponsoren sichtbar) mit all seinen Funktionen.
- https://github.com/iricartb/advanced-sql-injection-scanner-release
Weitere Informationen
https://advanced-sql-injection.blogspot.com/2017/06/ivan-ricart-borges-advanced-sql.html