当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《什么是NV32ts及其SQL注入攻击试图做什么?》经验,为你挑选了2个好方法。

我最近在我的网站上遭到了一些攻击,其中一个是用户代理NV32ts.

它们都是针对查询字符串变量的以下注入攻击的一些变体(其中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)

Joel Coehoor.. 5

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

    此时他们只是钓鱼.该脚本正在寻找具有开放注入漏洞和访问sql server中的sysobjects表的网站.该表将提供数据库中所有表和列(及其类型)的列表.如果页面实际返回结果而不是抛出错误,则脚本将记录该结果以用于将来更详细的攻击.您最终会将恶意javascript代码附加到整个数据库中每个表的每一行的每个文本(varchar,nvarchar,char,nchar,text)列.我认为这是更可能的选择.

    它创建一个总是返回true的表达式,也许允许它们绕过您的身份验证系统.这似乎不太可能,因为sysobjects引用使它变得不必要复杂.另外:他们使用And而不是Or.


Flory.. 5

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

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

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

许多SQL注入尝试真正意味着导致您的应用程序失败,以便知道您是易受攻击的.如果你确实处理好错误,他们可能会尝试盲目的SQL注入你.

看看这个就看详细了.

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



1> Joel Coehoor..:

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

    此时他们只是钓鱼.该脚本正在寻找具有开放注入漏洞和访问sql server中的sysobjects表的网站.该表将提供数据库中所有表和列(及其类型)的列表.如果页面实际返回结果而不是抛出错误,则脚本将记录该结果以用于将来更详细的攻击.您最终会将恶意javascript代码附加到整个数据库中每个表的每一行的每个文本(varchar,nvarchar,char,nchar,text)列.我认为这是更可能的选择.

    它创建一个总是返回true的表达式,也许允许它们绕过您的身份验证系统.这似乎不太可能,因为sysobjects引用使它变得不必要复杂.另外:他们使用And而不是Or.



2> Flory..:

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

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

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

许多SQL注入尝试真正意味着导致您的应用程序失败,以便知道您是易受攻击的.如果你确实处理好错误,他们可能会尝试盲目的SQL注入你.

看看这个就看详细了.

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

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有