SqlServer中批量替换被插入的木马记录

网络编程 2025-03-24 16:45www.168986.cn编程入门

最近,某公司一项重要的事业性质网站遭到黑客的攻击。黑客通过SQL注入的方式,将木马病毒注入到数据库之中,严重影响了MSSQL SERVER的数据安全。整个数据库都被恶意脚本所侵蚀,形势十分严峻。

以下是清除木马的SQL语句:

```sql

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

set @inScript='恶意代码';

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;

```

为了防止SQL注入再次发生,还需要采取以下措施:

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

2. 新建一个具有public权限的数据库用户,并使用该用户访问数据库;

3. 移除角色public对sysobjects与syscolumns对象的select访问权限;

4. 在用户属性中,对sysobjects与syscolumns的权限进行限制;

5. 通过以下代码检测权限设置是否得当:

```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

print @c;

FETCH NEXT FROM Table_Cursor INTO @T,@C;

END;

CLOSE Table_Cursor;

DEALLOCATE Table_Cursor;

```

如果以上代码运行失败,则表示权限设置正确;如果代码能够显示出来,则说明权限设置过高,需要进一步加强权限控制。希望大家能够引以为戒,加强网络安全意识,共同维护网络安全。也希望大家能够将此信息分享出去,让更多的人了解并受益。

上一篇:[js]一个只删除所有font标签的正则函数 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by