sql >> Base de Datos >  >> RDS >> Mysql

El sitio ha sido pirateado a través de inyección SQL

Parece un ataque de desbordamiento . Ellos UNION -ed con su consulta existente. reemplazando todos tus %20 con (espacio) ya que su URL codificada produce:

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

desglosarlo:

  1. el =-999.9 solo está finalizando su consulta actual
  2. 0x31303235343830303536 es NULL - solo están haciendo coincidir el número de columnas en su consulta existente. Si tuviera SELECT * FROM users y users tenía 4 columnas, la UNION también debe tener 4 columnas. Como resultado, simplemente usaron `valores NULL para completar esas columnas.
  3. la verdadera confusión está en CONCAT() . Están combinando 126, 39, nombre de la base de datos como valor hexadecimal, 39 y 126
  4. -- es un comentario mysql:ignora el resto de su consulta después

A juzgar por este ataque, sospecho que no está ajustando la entrada en mysql_real_escape_string() , lo que permitió a los atacantes salir de su consulta y ejecutar la suya propia.

Consulte owasp.org para más información.