¿Se trata de un intento de inyección de SQL?

48

Viendo los registros de errores, encontré muchas solicitudes a una aplicación web donde la URL contiene:

/if(now()=sysdate(),sleep(10),0)/*'XOR(if(now()=sysdate(),sleep(10),0))OR'"XOR(if(now()=sysdate(),sleep(10),0))OR"*/

Leí que podría ser parte de un ataque a sitios web desarrollados en PHP que no usamos. También estamos usando un ORM para consultar a nuestras bases de datos.

Entonces, ¿es esto un intento de inyección SQL?

    
pregunta Tony 03.08.2015 - 11:35
fuente

2 respuestas

63

Lo más probable es que se trate de una inyección ciega de SQL, que comprueba si es vulnerable a la inyección de SQL al verificar si su servidor tarda el tiempo especificado o más en responder a la solicitud. Esto no es realmente hacer ninguna edición de datos ni exponer nada; es solo comprobar si eres vulnerable.

También vale la pena señalar que esto se dirige específicamente a las bases de datos MySQL, ya que las sintaxis if y sleep son las de ese motor de base de datos.

Si el ataque está aislado, es probable que un "escáner de vulnerabilidades" lo haya "investigado" y esté preparando un ataque a gran escala, por lo que si su aplicación web no es vulnerable, no tiene nada de qué preocuparse.

Sin embargo, si recibes solicitudes más extrañas con diferentes patrones de ataque, podrías ser el objetivo específico de esos atacantes y deberías tomar medidas para evitar todos los ataques que puedan tener éxito.

Consulte Ataques de inyección de SQL ciegos basados en el tiempo para obtener más información.

    
respondido por el BgrWorker 03.08.2015 - 11:55
fuente
10

Los datos que has publicado allí parecen ser similares a los que un atacante podría usar para encontrar problemas de Inyección de SQL ciegos.

Una técnica común para encontrar estos problemas es tener una prueba condicional que, si es verdadera, hace que se ejecute un tiempo de espera o una función de suspensión. De esa manera, el atacante puede saber si fue exitoso al observar cuánto tiempo tarda el sitio en responder (aunque vale la pena señalar que esta técnica puede ser propensa a errores de bits si el sitio no responde o responde lentamente a otra). no relacionado, razón)

El código que has mencionado parece estar haciendo ese tipo de prueba lógica seguida de una declaración de suspensión, por lo que bien podría ser un intento de explotar la inyección SQL. Algunos tipos de atacantes los explotarán ampliamente en busca de impactos, por lo que puede no ser un ataque muy específico y, por lo tanto, no es probable que funcione en su sitio.

    
respondido por el Rоry McCune 03.08.2015 - 11:44
fuente

Lea otras preguntas en las etiquetas