Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Die Website wurde über SQL Injection gehackt

Es sieht aus wie ein Überlaufangriff . Sie UNION -ed mit Ihrer bestehenden Abfrage. alle Ihre %20 ersetzen mit (Leerzeichen), da seine URL-kodiert ergibt:

=-999.9 UNION ALL SELECT CONCAT(0x7e,0x27,Hex(cast(database() as char)),0x27,0x7e),0x31303235343830303536,0x31303235343830303536,0x31303235343830303536-

zerlegen:

  1. der =-999.9 beendet gerade Ihre aktuelle Abfrage
  2. 0x31303235343830303536 ist NULL - Sie stimmen nur mit der Anzahl der Spalten in Ihrer vorhandenen Abfrage überein. Wenn Sie SELECT * FROM users hatten und users hatte 4 Spalten, die UNION muss auch 4 Spalten haben. Als Ergebnis haben sie einfach `NULL-Werte verwendet, um diese Spalten zu füllen.
  3. Die eigentliche Verwirrung liegt im CONCAT() . Sie kombinieren 126, 39, Datenbankname als Hex-Wert, 39 und 126
  4. -- ist ein MySQL-Kommentar - danach ignoriert er den Rest Ihrer Anfrage

Nach diesem Angriff zu urteilen, vermute ich, dass Sie die Eingabe nicht in mysql_real_escape_string() einschließen , was es Angreifern ermöglichte, aus Ihrer Abfrage herauszuspringen und ihre eigene auszuführen.

Siehe owasp.org für weitere Informationen.