MSSQL数据库全库批量替换
最近因为某同学以前做的一Asp站点被攻击挂马,所以叫我帮忙检查一下,发现是被SQL注入所致.这些坏人把数据库文本型的字段都加了一段js调用的代码.
于是需要批量替换掉,可以用游标的系统存储过程 sp_MSforeach_Worker 处理
批处理SQL脚本如下
哎顺便感叹一下那些挂木马的大哥们怎么这么没有人道啊.
于是需要批量替换掉,可以用游标的系统存储过程 sp_MSforeach_Worker 处理
批处理SQL脚本如下
DECLARE @fieldtype sysname
SET @fieldtype='nvarchar'
-- @filedtype 的值可以为 varchar 和 nvarchar
-- 西狐注
DECLARE hCForEach CURSOR GLOBAL
FOR
SELECT N'update '+QUOTENAME(o.name)
+N' set '+ QUOTENAME(c.name) + N' = replace(' + QUOTENAME(c.name) + ',''<script src=http://木马网站/0.js></script>'','''')'
FROM sysobjects o,syscolumns c,systypes t
WHERE o.id=c.id
AND OBJECTPROPERTY(o.id,N'IsUserTable')=1
AND c.xusertype=t.xusertype
AND t.name=@fieldtype
EXEC sp_MSforeach_Worker @command1=N'?'
此同学的MSSQL数据为2000版本.其它版本未做过测试SET @fieldtype='nvarchar'
-- @filedtype 的值可以为 varchar 和 nvarchar
-- 西狐注
DECLARE hCForEach CURSOR GLOBAL
FOR
SELECT N'update '+QUOTENAME(o.name)
+N' set '+ QUOTENAME(c.name) + N' = replace(' + QUOTENAME(c.name) + ',''<script src=http://木马网站/0.js></script>'','''')'
FROM sysobjects o,syscolumns c,systypes t
WHERE o.id=c.id
AND OBJECTPROPERTY(o.id,N'IsUserTable')=1
AND c.xusertype=t.xusertype
AND t.name=@fieldtype
EXEC sp_MSforeach_Worker @command1=N'?'
哎顺便感叹一下那些挂木马的大哥们怎么这么没有人道啊.
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
【推荐】园子的不务正业:向创业开发者推荐「楼盘」- 杭州云谷中心
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】天翼云爆款云主机2核2G限时秒杀,28.8元/年起!立即抢购
· Ribbon LoadBalancer: 开源的客户端式负载均衡框架
· EF Core:再谈普通实体关系与 Owned 关系的区别
· C++20新增属性[[no_unique_address]]详解
· 线上频繁FullGC?竟是Log4j2的这个“特性”坑了我
· 聊一聊 .NET 中的 CancellationTokenSource
· 刚刚 Java 25 炸裂发布!让 Java 再次伟大
· 一款基于 .NET 开源美观、功能丰富的串口调试工具
· .NET 10 是微软 AI 战略的技术承重墙
· Runtime Async - 步入高性能异步时代
· AI 开发者工具 TOP 榜:9 大分类 + 20种工具