5

最近我的网站受到了一些攻击,使用的是 NV32ts 的用户代理。

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

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

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 )
4

3 回答 3

5

我以两种方式阅读了这一篇,但我不确定 100% 是哪一种:

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

我相信他们在这里试图弄清楚的是你的应用程序是否容易受到 SQL 注入的攻击。

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

因此,如果您的应用程序对 SQL 注入开放,他们现在就知道了(因为有效的参数值导致应用程序出错)。如果他们的 SQL 数据库错误浮出水面,他们也可能知道您的错误处理很糟糕。如果您确实有错误的错误处理,他们也知道您有多少表(不确定它们有什么好处,但信息越多越好)。

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

查看内容以详细了解。

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

于 2009-01-12T21:01:02.693 回答
0

HP 有一个免费工具,您可以运行它来检查您的站点(或任何站点)是否存在名为 sdrawlr 的 SQL 注入漏洞。你可以在这里下载:

于 2009-05-31T06:38:11.567 回答