mssql数据库被挂马

jim8590251 2009-01-16 10:52:47
最近MSSQL数据库老被挂马,里面老有字段被加了<script..</script>
没办法,我只能用update一句一句的执行啊
可是遇到了ntext格式的字段,里面内容看不到,替换也不行了
我想在页面把上该字段的内容输出来,也是输出一半就没有了,现在不知道怎么办了
高手赐教
...全文
141 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
海盗之爷 2009-06-25
  • 打赏
  • 举报
回复
SQL注入解决方案-网站遭挂马解决方案
http://blog.mdcsoft.cn/archives/200811/196.html

Mdcsoft-ips软件 防御在入侵那一刻!
heyisheng 2009-06-22
  • 打赏
  • 举报
回复
这问题很严重,很明显是网站存在漏洞而被攻击了,若需要安全技术服务请联系EMAIL & MSN:yisheng@hotmail.com, 7X24 为您的网站保驾护航。
dawugui 2009-01-16
  • 打赏
  • 举报
回复
数据库被注入攻击 所有文本型字下段数据都被加了 <script_src=http://ucmal.com/0.js> </script>
怎么删掉?


DECLARE @fieldtype sysname
SET @fieldtype='varchar'

--删除处理
DECLARE hCForEach CURSOR GLOBAL
FOR
SELECT N'update '+QUOTENAME(o.name)
+N' set '+ QUOTENAME(c.name) + N' = replace(' + QUOTENAME(c.name) + ',''<script_src=http://ucmal.com/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'?'


ReViSion 2009-01-16
  • 打赏
  • 举报
回复
可以这样,给你个参考

if object_id('test') is not null
drop table test
go

create table test
(id int identity,txt ntext)


insert into test(txt)
select N'dddddd<script>ddddddddd</script>fffffffffffffff'
insert into test(txt)
select N'<script>ddddddddd</script>ffffbbfff'

----select s=charindex('<script>',txt),e=charindex('</script>',txt),txt from test
declare @s int,@e int,@id int
DECLARE @ptrval binary(16)

DECLARE cur CURSOR FOR
select s=charindex('<script>',txt),e=charindex('</script>',txt),id from test

OPEN cur

FETCH NEXT FROM cur
INTO @s, @e,@id

-- Check @@FETCH_STATUS to see if there are any more rows to fetch.
WHILE @@FETCH_STATUS = 0
BEGIN
if isnull(@e,0)>isnull(@s,0)
begin
set @e=@e-@s+9;
set @s=@s-1;


SELECT @ptrval = TEXTPTR(txt)
FROM test where id=@id;
UPDATETEXT test.txt @ptrval @s @e ''

FETCH NEXT FROM cur
INTO @s, @e,@id
end
END

CLOSE cur
DEALLOCATE cur
GO
select * from test
ChinaJiaBing 2009-01-16
  • 打赏
  • 举报
回复

举个例子,数据库源...
dobear_0922 2009-01-16
  • 打赏
  • 举报
回复
dobear_0922 2009-01-16
  • 打赏
  • 举报
回复
DECLARE @fieldtype sysname
SET @fieldtype='varchar'

--删除处理
DECLARE hCForEach CURSOR GLOBAL
FOR
SELECT N'update '+QUOTENAME(o.name)
+N' set '+ QUOTENAME(c.name) + N' = replace(' + QUOTENAME(c.name) + ',''<script_src=http://ucmal.com/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'?'
ReViSion 2009-01-16
  • 打赏
  • 举报
回复
一行一行更新还可以,批处理就不知道,怎么样处理啦
zhnzzy 2009-01-16
  • 打赏
  • 举报
回复
up

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧