Mysql
 sql >> Database >  >> RDS >> Mysql

Il sito è stato violato tramite SQL Injection

Sembra un attacco di overflow . Loro UNION -ed con la tua query esistente. sostituendo tutto il tuo %20 con (spazio) poiché la sua codifica URL restituisce:

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

scomponilo:

  1. il =-999.9 sta terminando la tua query attuale
  2. 0x31303235343830303536 è NULL - corrispondono solo al numero di colonne nella tua query esistente. Se avessi SELECT * FROM users e users aveva 4 colonne, la UNION deve avere anche 4 colonne. Di conseguenza, hanno semplicemente usato `valori NULL per popolare quelle colonne.
  3. la vera confusione è nel CONCAT() . Stanno combinando 126, 39, nome del database come valore esadecimale, 39 e 126
  4. -- è un commento mysql - ignora il resto della tua query dopo

A giudicare da questo attacco, sospetto che tu non stia avvolgendo l'input in mysql_real_escape_string() , che ha permesso agli attaccati di saltare fuori dalla tua query ed eseguire la propria.

Vedi owasp.org per ulteriori informazioni.