Mysql
 sql >> Base de données >  >> RDS >> Mysql

Le site a été piraté via SQL Injection

Cela ressemble à une attaque par débordement . Ils UNION -ed avec votre requête existante. remplacer tous vos %20 avec (espace) puisque son URL encodée donne :

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

décomposer :

  1. le =-999.9 vient de terminer votre requête en cours
  2. 0x31303235343830303536 est NULL - ils correspondent simplement au nombre de colonnes de votre requête existante. Si vous aviez SELECT * FROM users et users avait 4 colonnes, le UNION doit également avoir 4 colonnes. Par conséquent, ils n'ont utilisé que des valeurs `NULL pour remplir ces colonnes.
  3. la vraie confusion est dans le CONCAT() . Ils combinent 126, 39, nom de la base de données comme valeur hexadécimale, 39 et 126
  4. -- est un commentaire mysql - il ignore le reste de votre requête après

À en juger par cette attaque, je soupçonne que vous n'encapsulez pas l'entrée dans mysql_real_escape_string() , ce qui permettait à l'attaquant de sortir de votre requête et d'exécuter la sienne.

Voir owasp.org pour plus d'informations.