什么是NV32ts及其SQL注入攻击试图做什么?

时间:2009-01-12 19:39:19

标签: sql-server security sql-injection

我最近在我的网站上遭到了一些攻击,使用了NV32的用户代理。

它们都是针对查询字符串变量的以下注入攻击的一些变体(其中99999表示有效的查询字符串值,攻击附加到值):

(为方便起见,我已对以下攻击进行了解码)

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

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

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

我相信sysobjects与Sql Server主数据库有关,但我无法弄清楚他们想要完成什么。

修改 我现在用两个不同的用户代理看到了同样的事情:

  • NV32ts
  • Mozilla / 4.0(兼容; 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

3 个答案:

答案 0 :(得分:5)

我读了这两个方法,但我不是100%确定哪个:

  1. 此时他们只是钓鱼。该脚本正在寻找具有开放注入漏洞和访问sql server中的sysobjects表的网站。该表将提供数据库中所有表和列(及其类型)的列表。如果页面实际返回结果而不是抛出错误,则脚本将记录该结果以用于将来更详细的攻击。您最终会将恶意javascript代码附加到整个数据库中每个表的每一行的每个文本(varchar,nvarchar,char,nchar,text)列。我认为这是更可能的选择。
  2. 它创建一个总是返回true的表达式,也许允许它们绕过您的身份验证系统。这似乎不太可能,因为sysobjects引用使它变得不必要复杂。另外:他们使用And而不是Or

答案 1 :(得分:5)

我相信他们想要弄清楚的是你的应用程序是否容易受到SQL注入攻击。

Char(124)转换为|强制整个查询结果被视为连接两个管道的查询结果的字符。因此,您最终会得到数据库中包含两个管道的表数(例如| 1428 |)。当与>中的0比较时0导致错误,因为| 1428 |不是一个int。

因此,如果您的应用程序对SQL注入是开放的,他们现在知道它(因为有效的参数值导致应用程序出错)。如果SQL数据库错误冒泡到顶部,他们可能也知道您有错误的错误处理。如果你确实有错误的错误处理,他们也知道你有多少表(不确定它们有什么好处,但更多信息更好)。

许多SQL注入尝试实际上是为了让您的应用程序失败,以便知道您是易受攻击的。如果你确实处理错误,他们可能会尝试盲目的SQL注入你。

查看this以详细了解。

我希望你不是脆弱的,如果你运气好的话!

答案 2 :(得分:0)

惠普有一个免费工具,您可以运行该工具来检查您的站点(或任何站点)是否存在名为sdrawlr的SQL注入漏洞。 您可以下载here