2009-01-12 15 views
5

He estado recibiendo una serie de ataques en mi sitio web últimamente, con un User-Agent de NV32ts.¿Qué intentan hacer NV32ts y su SQL Injection Attack?

Todos ellos son alguna variación de los siguientes ataques de inyección contra una variable de cadena de consulta (donde 99.999 representa un valor de cadena de consulta válida, el ataque se añade al valor):

(Por conveniencia he serán decodificados 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 entender 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;. CLR NET 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)

Respuesta

5

leí este uno de dos maneras , pero no estoy 100% seguro de que:

  1. En este punto solo están pescando. El script busca sitios web que tengan vulnerabilidades de inyección abierta 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 arroja un resultado en lugar de arrojar un error, el script lo registrará para un futuro ataque más detallado. Eventualmente terminará con código JavaScript malicioso anexado a cada columna de texto (varchar, nvarchar, char, nchar, text) de cada fila de cada tabla en el db completo. Creo que esta es la opción más probable.
  2. Crea una expresión que siempre devolverá verdadero, quizás permitiéndoles omitir su sistema de autenticación. Esto parece menos probable, porque la referencia de sysobjects lo hace innecesariamente complejo. Además: utilizaron And en lugar de Or.
+0

De acuerdo, parece que está escaneando vulnerabilidades básicas para mí. No necesariamente un script (eso depende del comportamiento realmente). – Loki

5

Creo que lo que están intentando averiguar aquí es si su aplicación es vulnerable a la inyección de SQL.

El Char (124) se traduce en | carácter que obliga a ver el resultado completo de la consulta como el resultado de la consulta con dos tuberías adjuntas. Entonces termina con el número de tablas en su base de datos con dos tuberías adjuntas (ej. | 1428 |). Que cuando se compara con 0 en el> 0 causa un error porque | 1428 | no es un int.

Entonces, si su aplicación está abierta a la inyección de SQL, ahora lo saben (porque el valor del parámetro válido hizo que la aplicación errara). También pueden saber que tiene un mal manejo de errores si el error de la base de datos SQL sube hasta la cima. Si tiene un mal manejo de errores, también sabrá cuántas tablas tiene (no está seguro de qué bien las hace, pero cuanta más información, mejor).

Una gran cantidad de intentos de inyección de SQL realmente tienen como objetivo hacer que su aplicación falle para saber que usted es vulnerable. Si manejas bien los errores, entonces pueden intentar cegar SQL para que te inyecten.

Consulte this para ver eso en detalle.

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

0

HP tiene una herramienta gratuita que puede ejecutar para comprobar si su sitio (o cualquier sitio) tiene vulnerabilidades de inyección SQL llamadas sdrawlr. Puede descargarlo here:

+0

¿Alguien sabe si la herramienta nv32ts está disponible para descargar? Me gustaría tener la oportunidad de ejecutarlo antes que los otros tipos. –

Cuestiones relacionadas