/ / O que o NV32ts e seu SQL Injection Attack estão tentando fazer? - sql-server, segurança, injeção de sql

O que o NV32ts e seu SQL Injection Attack estão tentando fazer? - sql-server, segurança, injeção de sql

Eu tenho recebido uma série de ataques no meu site ultimamente, com um User-Agent da NV32ts.

Todos eles são uma variação dos seguintes ataques de injeção contra uma variável querystring (em que 99999 representa um valor de querystring válido, o ataque é anexado ao valor):

(Por conveniência eu decodifiquei os seguintes ataques)

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

ou

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

ou

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

Eu acredito que sysobjects tem algo a ver com o banco de dados mestre do Sql Server, mas eu não consigo descobrir o que eles estão tentando realizar.

Editar: Eu já vi essas mesmas coisas com dois agentes de usuário diferentes:

  • NV32ts
  • Mozilla / 4.0 (compatível; 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)

Respostas:

5 para resposta № 1

Eu li isso de duas maneiras, mas eu não tenho 100% de certeza que:

  1. Neste ponto eles estão apenas pescando. O script está procurando por sites que tenham vulnerabilidades de injeção abertas e acesso à tabela sysobjects no sql server. Essa tabela fornecerá uma lista de todas as tabelas e colunas (e seus tipos) no banco de dados. Se a página realmente retornar um resultado em vez de lançar um erro, o script registrará isso para um ataque futuro mais detalhado. Você acabará tendo um código JavaScript malicioso anexado a cada coluna de texto (varchar, nvarchar, char, nchar, text) de todas as linhas de todas as tabelas do banco de dados inteiro.Eu acho que essa é a opção mais provável.
  2. Cria uma expressão que sempre retornaráverdade, talvez permitindo que eles ignorem seu sistema de autenticação. Isso parece menos provável, porque a referência sysobjects a torna desnecessariamente complexa. Também: eles usaram And ao invés de Or.

5 para resposta № 2

Eu acredito que o que eles estão tentando descobrir aqui é se o seu aplicativo é vulnerável a injeção SQL.

O Char (124) traduz para o | personagem queforça todo o resultado da consulta a ser visto como o resultado da consulta com dois canais conectados. Então você acaba com o número de tabelas em seu banco de dados com dois tubos ligados (ex. | 1428 |). Que quando comparado a 0 no> 0 causa um erro porque | 1428 | não é um int.

Então, se o seu aplicativo está aberto para SQL Injectioneles agora sabem disso (porque o valor do parâmetro válido fez com que o aplicativo errasse). Eles também podem saber que você tem um tratamento incorreto de erros se o erro do banco de dados SQL chegar ao topo. Se você tiver um tratamento incorreto de erros, eles também saberão quantas tabelas você tem (não tenho certeza do que é bom para elas, mas quanto mais informações, melhor).

Muitas tentativas de injeção de SQL são realmentepara fazer com que seu aplicativo falhe para saber que você está vulnerável. Se você lida com erros bem, eles podem então tentar cegar SQL injetar você.

Confira esta para ver isso em detalhes.

Espero que você não esteja vulnerável e que tenha boa sorte!


0 para resposta № 3

A HP tem uma ferramenta gratuita que você pode executar para verificar se o seu site (ou qualquer site) tem vulnerabilidades de injeção SQL chamadas sdrawlr. Você pode baixá-lo Aqui: