Heim > Datenbank > MySQL-Tutorial > Wie kann SQL Injection Bypass `mysql_real_escape_string ()`?

Wie kann SQL Injection Bypass `mysql_real_escape_string ()`?

Susan Sarandon
Freigeben: 2025-01-25 21:27:10
Original
640 Leute haben es durchsucht

How Can SQL Injection Bypass `mysql_real_escape_string()`?

Verwenden Sie ungültige Multi -Abschnitts -Zeichen zur Umgehung

Funktion für die SQL -Injektion mysql_real_escape_string() Auch wenn die -Funktion verwendet wird, kann eine SQL -Injektion auftreten. Die folgenden Schritte zeigen, wie diese Funktion umgangen wird:

mysql_real_escape_string()

Stellen Sie den Serverzeichen als Codierung fest, der leicht angegriffen werden kann:
  1. Die Angriffslast mit einem ungültigen Multi -BYTE -Zeichen:
    <code class="language-sql">mysql_query('SET NAMES gbk');</code>
    Nach dem Login kopieren
  2. Verwenden Sie eine unvorbereitete Angriffslast, um Abfrage durchzuführen:

    <code class="language-php">$var = mysql_real_escape_string("\xbf\x27 OR 1=1 /*");</code>
    Nach dem Login kopieren
  3. Der Rotationsbetrieb der Funktion hängt von dem in aktuell verwendeten Zeichensatz ab. In diesem Beispiel verwendet die Verbindung jedoch das Zeichensatz (z. B. GBK), das leicht angegriffen werden kann und die Erstellung ungültiger Multi -Linien -Zeichen ermöglicht. Daher wurde die Injektionsbelastung nicht korrekt übertragen, was zu erfolgreichen Injektionsangriffen führte.

    Sicherheitsmaßnahmen
    <code class="language-sql">mysql_query("SELECT * FROM test WHERE name = '$var' LIMIT 1");</code>
    Nach dem Login kopieren
Um solche Injektionsangriffe zu verhindern, sollten Sie die folgenden Maßnahmen ergreifen:

mysql_real_escape_string()

sichere Zeichen:

Wählen Sie Zeichensätze aus, die nicht leicht angegriffen werden können, wie z. B. UTF8 oder Latin1. Aktivieren Sie no_backslash_escapes SQL -Modus:

Dies verhindert ungültige Zeichen im Drehprozess.

Verwenden Sie PDO- und Deaktivieren von Simulation vorabverarbeitung:

    PDO bietet echte Vorverarbeitungssätze, um potenzielle Injektionsanfälligkeiten zu verhindern.
  • Die neue Version von MySQL (5.1 oder höhere Version): Diese Versionen beheben die Schwachstellen, die den oben genannten Injektionsangriff ermöglichen.

Das obige ist der detaillierte Inhalt vonWie kann SQL Injection Bypass `mysql_real_escape_string ()`?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage