/ / ¿Qué intentan hacer NV32ts y su ataque de inyección SQL? - sql-server, seguridad, sql-injection

¿Qué intentan hacer NV32ts y su ataque de inyección SQL? - sql-server, seguridad, sql-injection

He estado recibiendo varios ataques en mi sitio web últimamente, con un User-Agent de NV32ts.

Todos ellos son algunas variaciones de los siguientes ataques de inyección contra una variable de cadena de consulta (donde 99999 representa un valor válido de cadena de consulta, el ataque se agrega al valor):

(Por conveniencia he codificado los siguientes ataques)

999999 And char(124)+(Select Cast(Count(1) as varchar(8000))+char(124) From [sysobjects] Where 1=1)>0

o

999999" And char(124)+(Select Cast(Count(1) as varchar(8000))+char(124) From [sysobjects] Where 1=1)>0 and ""="

o

999999" And char(124)+(Select Cast(Count(1) as varchar(8000))+char(124) From [sysobjects] Where 1=1)>0 and ""="

Creo que sysobjects tiene algo que ver con la base de datos maestra del Servidor SQL, pero no puedo averiguar qué es lo que están tratando de lograr.

Editar: Ahora he visto estas mismas cosas con dos agentes de usuario diferentes:

  • NV32ts
  • Mozilla / 4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5. 21022; WWTClient2)

Respuestas

5 para la respuesta № 1

Lo leí de dos maneras, pero no estoy 100% seguro de cuál:

  1. En este punto solo están pescando. El script está buscando sitios web que tengan vulnerabilidades abiertas de inyección y acceso a la tabla sysobjects en el servidor SQL. Esa tabla proporcionará una lista de todas las tablas y columnas (y sus tipos) en la base de datos. Si la página realmente devuelve un resultado en lugar de lanzar un error, la secuencia de comandos lo registrará para un futuro ataque más detallado. Eventualmente terminará con un código javascript malicioso adjunto a cada columna de texto (varchar, nvarchar, char, nchar, text) de cada fila de cada tabla en la base de datos. Creo que esta es la opción más probable.
  2. Crea una expresión que siempre volverá.Es cierto, tal vez permitiéndoles eludir su sistema de autenticación. Esto parece menos probable, porque la referencia de sysobjects lo hace innecesariamente complejo. También: utilizaron And más bien que Or.

5 para la respuesta № 2

Creo que lo que intentan descubrir aquí es si su aplicación es vulnerable a la inyección SQL.

El Char (124) se traduce al | personaje quehace que todo el resultado de la consulta se vea como el resultado de la consulta con dos canalizaciones adjuntas. Así que terminas con el número de tablas en tu base de datos con dos canalizaciones adjuntas (ej. | 1428 |). Cuando se compara con 0 en el> 0, se produce un error porque | 1428 | no es un int

Así que si tu aplicación está abierta a SQL Injection.ahora lo saben (porque el valor del parámetro válido hizo que la aplicación fallara). También es posible que sepan que tiene un error de manejo si el error de la base de datos de SQL se eleva hasta la parte superior. Si tiene un mal manejo de errores, también saben cuántas tablas tiene (no estoy seguro de qué es lo que las hace, pero cuanta más información, mejor).

Una gran cantidad de intentos de inyección de SQL son realmente significadospara hacer que tu aplicación falle para saber que eres vulnerable. Si maneja bien los errores, entonces pueden tratar de inyectar SQL ciego.

Revisa esta Para ver eso en detalle.

Espero que no seas vulnerable, y si eres buena suerte!


0 para la respuesta № 3

HP tiene una herramienta gratuita que puede ejecutar para verificar si su sitio (o cualquier otro sitio) tiene vulnerabilidades de Inyección de SQL llamadas sdrawlr. Puedes descargarlo aquí: