Web5: SQL-Injection – Einige Techniken zur Umgehung von Filtermechanismen

Web5: SQL-Injection – Einige Techniken zur Umgehung von Filtermechanismen

1. Kürzen Sie den Abfrageinhalt

Falls Sie die Skripte in der Abfrage ignorieren möchten. Für die folgende Verarbeitung erfordert die Abfrage beispielsweise die Bedingung active=1, aber wir können kommentieren (--, -- -, -+, #, /*, /**/, // , ;%00…) und ignoriere es. Beim Mining wissen wir oft nicht, was der verbleibende Inhalt der Abfrage bewirkt, daher ist die Verwendung von Kommentaren in diesem Fall sehr effektiv.

Web5: SQL-Injection – Einige Techniken zur Umgehung von Filtermechanismen

Nach dem Kommentieren lautet unsere Abfrage:

Web5: SQL-Injection – Einige Techniken zur Umgehung von Filtermechanismen

2. Umgehen Sie die Schlüsselwortfilterung

A. Inline-Kommentare

Inline-Kommentare werden sehr effektiv verwendet, um die Leerraumfilterung zu umgehen. Sie können die folgenden Zeichen verwenden, um die Leerraumfilterung zu umgehen: /**/, %20, %09, %0a, %0b, %0c, %0d, %a0). Zum Beispiel:

Web5: SQL-Injection – Einige Techniken zur Umgehung von Filtermechanismen

Oder umgehen Sie die Schlüsselwortfilterung (verfügbar mit MySql). Im folgenden Beispiel befinden sich die Schlüsselwörter Union und Password auf der Blacklist und wurden daher blockiert. Wir können dies umgehen, indem wir:

Web5: SQL-Injection – Einige Techniken zur Umgehung von Filtermechanismen

B. Schlüsselwörter ersetzen

Wenn wir SQL-Injection ausnutzen, verwenden wir häufig Schlüsselwörter wie: Union, Select, Information_Schema ... In vielen Fällen ersetzen Programmierer diese Schlüsselwörter einfach:

Web5: SQL-Injection – Einige Techniken zur Umgehung von Filtermechanismen

Wir können leicht erkennen, dass der obige Verarbeitungscode fehlt. Wenn es sich lediglich um einen Mustervergleich handelt, ist die Umgehung äußerst einfach. Lassen Sie uns die Groß- und Kleinschreibung berücksichtigen, wobei Groß- und Kleinbuchstaben unterschiedlich interpretiert werden.

Anstatt das Schlüsselwort zu verwenden:

select, union…

Wir werden verwenden:

SeLEcT, UniOn…

Die Grundlage dieser Umgehung besteht darin, dass Datenbankverwaltungssysteme nicht zwischen Groß- und Kleinschreibung und Groß-/Kleinschreibungsschlüsselwörtern unterscheiden.

In einigen Fällen filtert die Webanwendung bestimmte Schlüsselwörter (Union, Select...) ganz oder teilweise heraus. Wir werden wie folgt umgehen:

id=1+uniunionon+SeLselectecT+1,2,3-- -

Nachdem Union und Select von der Webanwendung herausgefiltert wurden, erhalten wir die richtige Abfrage wie folgt:

id=1+union+SeLecT+1,2,3-- -

C. Zeichenkodierung

Wir können das Blockieren von Schlüsselwörtern durch die WAF (Web Application Firewall) umgehen, indem wir sie kodieren. Viele WAF-Anwendungen dekodieren die Abfrage nur einmal und filtern Schlüsselwörter in der Blacklist heraus. Anschließend kodieren wir die Anfrage zweimal, damit sie in diesem Fall umgangen werden kann.

Web5: SQL-Injection – Einige Techniken zur Umgehung von Filtermechanismen

3. Bypass blockiert einfache und doppelte Anführungszeichen

- Schauen wir uns ein Beispiel an, bevor wir uns speziell mit dieser Umgehung befassen.

Web5: SQL-Injection – Einige Techniken zur Umgehung von Filtermechanismen

In diesem Szenario haben wir in der Datenbank eine Tabelle mit dem Namen „Benutzer“. Die nächste Aufgabe besteht darin, den Spaltennamen in der Tabelle zu kennen, um deren Informationen zu erhalten. Wie in der obigen Abfrage verwenden wir die Bedingung: table_name='users'. Wenn jedoch sowohl einfache Anführungszeichen (') als auch doppelte Anführungszeichen (") von WAF blockiert werden, können wir „Benutzer“ oder „Benutzer“ nicht mehr verwenden. Wie kann dieses Problem gelöst werden? Das integrierte Datenbanksystem stellt uns eine Funktion zur Verfügung, die löst dieses Problem sehr gut, nämlich die Funktion CHAR( ) (für Oracle ist es CHR()). In der obigen Abfrage werden wir sie beispielsweise umgehen, indem wir:

Web5: SQL-Injection – Einige Techniken zur Umgehung von FiltermechanismenWeb5: SQL-Injection – Einige Techniken zur Umgehung von Filtermechanismen

PHP-Programmierer sind mit der Funktion addslashes() bestens vertraut. Die Funktion addslashes() bewirkt, dass Sonderzeichen wie einfache Anführungszeichen ('), doppelte Anführungszeichen ("), Backslash (\) und NUL-Zeichen (Nullbyte) „\“ hinzugefügt werden, um das Datenbankverwaltungssystem zu unterstützen. Gibt es Keine Schwierigkeiten und Verwirrung beim Umgang mit Zeichenfolgen, die diese Zeichen enthalten? Wenn wir also gemäß dem Skript Folgendes in die Abfrage einfügen möchten: name='someName' oder '1'='1'-- Die Ergebnisse entsprechen nicht mehr unseren Erwartungen.

Es gibt jedoch eine Technik, um die Funktion addslashes() zu umgehen und einfache Anführungszeichen (') einzufügen. Diese Technik ist seit geraumer Zeit öffentlich bekannt und die Implementierung dieser Technik ist ziemlich schwierig, da sie an den auf der Website angewendeten Codierungsstil gebunden ist.

4. Umgehen Sie den Fehler „Ungültige Sortiermischung für Operation UNION“.

In einigen Verwaltungssystemen (häufig in MySql zu finden) wird bei Verwendung des Schlüsselworts UNION, wenn Datenbanken und Tabellen auf Kollatierung eingestellt sind, der Fehler „Ungültige Mischung von Kollatierung für Operation UNION“ gemeldet. Das Festlegen der Sortierung kann auf die Absicht des Datenbankdesigners oder auf die Standardeinstellung von MySql zurückzuführen sein. Bei Verwendung von Union müssen wir sicherstellen, dass für die Auswahlwertbedingung in jedem Feld der entsprechende Codetyp definiert sein muss. Meiner Meinung nach kommt dieser Fehler recht häufig vor, insbesondere bei CMS, auf denen Apache MySql läuft. Weitere Informationen finden Sie unter: http://bugs.mysql.com/bug.php?id=57926.
In diesem Fall können wir Methoden zur Konvertierung in den entsprechenden Kodierungstyp verwenden.

Beispielsweise im folgenden Fall:

Web5: SQL-Injection – Einige Techniken zur Umgehung von Filtermechanismen

Wenn in der obigen Abfrage die Sortierung für Spalte1 beispielsweise auf Unicode-UTF8 oder _latin1 eingestellt ist, muss die Auswahl aus Spalte2 in den entsprechenden Code konvertiert werden. Wir können den Stil wie folgt erzwingen:

Web5: SQL-Injection – Einige Techniken zur Umgehung von Filtermechanismen

Wir sehen bei dieser Umgehungsmethode einen Nachteil: Wir müssen wissen, dass der zusammengestellte Code _latin1 ist. Eine bessere Möglichkeit, dies zu umgehen, ist meiner Meinung nach die Verwendung der Hex- und Unhex-Kodierungs- und Dekodierungsfunktionen.

Web5: SQL-Injection – Einige Techniken zur Umgehung von Filtermechanismen

Es gibt viele andere Funktionen, die anstelle von Hex und Unhex verwendet werden können.


So blockieren Sie den Internetzugriff mithilfe von Gruppenrichtlinien (GPO)

So blockieren Sie den Internetzugriff mithilfe von Gruppenrichtlinien (GPO)

In diesem Artikel erfahren Sie, wie Sie den Internetzugriff für Benutzer oder Computer im Active Directory-Gruppenrichtlinienobjekt blockieren. Lernen Sie effektive Methoden, moderne Sicherheitsprotokolle und Best Practices kennen.

Warum müssen wir USB formatieren? Wie formatiere ich USB?

Warum müssen wir USB formatieren? Wie formatiere ich USB?

Das Formatieren eines USB-Sticks ähnelt dem Formatieren jedes anderen Laufwerks. Hier erfahren Sie, warum und wie Sie USB formatieren sollten, um optimale Ergebnisse zu erzielen.

Beheben Sie den Fehler „Game Security Violation Detected“ in Windows 10

Beheben Sie den Fehler „Game Security Violation Detected“ in Windows 10

Wenn beim Starten eines Spiels unter Windows 10 der Fehler „Game Security Violation Detected“ angezeigt wird, sind die Lösungen einfach und effektiv. Hier erfahren Sie, wie Sie dieses Problem beheben können.

So wechseln Sie die Lautsprecher mit Tastenkombinationen unter Windows 10

So wechseln Sie die Lautsprecher mit Tastenkombinationen unter Windows 10

Wechseln Sie mühelos zwischen Audiogeräten unter Windows 10 mit Tastenkombinationen. Erfahren Sie, wie Sie den Audio-Umschalter effizient nutzen.

8 Möglichkeiten, MSConfig in Windows 11 zu öffnen

8 Möglichkeiten, MSConfig in Windows 11 zu öffnen

Entdecken Sie 8 einfache Möglichkeiten, MSConfig in Windows 11 zu öffnen, um zahlreiche Probleme effizient zu beheben.

4 gefälschte Viren, die zum Spaß Freunde trollen

4 gefälschte Viren, die zum Spaß Freunde trollen

Freunde und Familienmitglieder zu trollen macht Spaß mit diesen harmlosen gefälschten Viren. Hier sind vier kreative Ideen, um Ihre Freunde zum Lachen zu bringen.

Unterschied zwischen Virtualisierung und Emulation

Unterschied zwischen Virtualisierung und Emulation

Entdecken Sie die Unterschiede zwischen Virtualisierung und Emulation sowie deren Vor- und Nachteile. Erfahren Sie, wie diese Technologien in modernen IT-Umgebungen eingesetzt werden.

So aktivieren oder deaktivieren Sie Device Guard unter Windows 10

So aktivieren oder deaktivieren Sie Device Guard unter Windows 10

Device Guard ist ein wichtiges Sicherheitsfeature in Windows 10, das sicherstellt, dass nur vertrauenswürdige Anwendungen ausgeführt werden. So aktivieren oder deaktivieren Sie es.

So verwenden Sie vDOS, um alte DOS-Programme unter Windows 10 auszuführen

So verwenden Sie vDOS, um alte DOS-Programme unter Windows 10 auszuführen

Erfahren Sie, wie Sie vDOS verwenden, um alte DOS-Software unter Windows 10 auszuführen. Dieser Emulator ist ideal für die Nutzung älterer Programme, bietet jedoch keine optimale Lösung für Spiele.

3 Möglichkeiten, USB Selective Suspend in Windows 11 zu deaktivieren

3 Möglichkeiten, USB Selective Suspend in Windows 11 zu deaktivieren

Wenn Sie Probleme mit USB-Geräten auf Ihrem Windows 11-Computer haben, sollten Sie die Funktion „USB Selective Suspend“ deaktivieren.