Sql Server 批量替换被插入的木马记录
2011-08-01 00:36
225 查看
最近公司做的一个事业性质网站被黑客攻击了,通过sql注入方式,把木马注入了数据库,整个MSSQL SERVER 的数据都被附加上恶意脚本了,
最近找了找 批量替换被插入的木马记录,找到了一条好的语句,用处很大,仅仅使用十几行游标语句,把整个数据库的所有表的恶 意木马清除掉了,
而且在Google搜索到此记录几率很小,在此专门转载一下!为了以后自己能找得到,也希望后人能得到帮助。 原文如下: 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、通过以下代码检测(失败表示权限正确,如能显示出来则表明权限太高): 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
相关文章推荐
- Sql Server 批量替换被插入的木马记录
- Sql Server 批量替换被插入的木马记录
- SqlServer中批量替换被插入的木马记录
- sql server:向表中批量插入记录时如何避免重复插入记录
- SQL Server中如何批量插入记录(急)
- SQL Server中如何批量插入记录
- SQL SERVER 批量插入记录
- SQL SERVER 批量插入记录
- oracle jdbc 邪恶数字"65536" ---批量插入10万条记录引发的“血案”
- SQL Server根据表或视图批量生成插入语句并BCP导出成文本
- mysql 控制每次批量插入5w条记录思路
- SQL Server 2012中快速插入批量数据的示例及疑惑 【转载】
- SQL Server 2008的批量插入功能
- SQL Server 返回最后插入记录的自动编号ID
- 向sql server插入包含有主键值的记录
- SQL Server 批量插入数据的两种方法
- 一次性批量插入大批量测试数据记录
- C# 把一个DT内的数据 批量插入到数据库里(SQL server 2005)
- SQL Server 返回插入记录的自增编号(包括多表插入等)