近日很多使用sql SERVER作为数据库的站长朋友都中了3b3.org的恶意代码,关于如何彻底解决这一问题,真是愁坏了一些新手站长,就连一些经验丰富的老站长也有的无能为力,网小编经过实战和网上查找资料,现在将解决方法公布给大家:
如何最快速度删除?
" <script src=http://3b3.org/c.Js> </script> "
---------------------------------------------------------------
进入SQL查询分析器
选择你的数据库
第一步:先sql表修改所有者为dbo
EXEC sp_MSforeachtable 'exec sp_changeobjectowner ' '? ' ',' 'dbo ' ' '
第二步:统一删除字段被挂的Js
declare @delStr nvarchar(500)
set @delStr= ' <script src=http://3b3.org/c.Js> </script> '
set nocount on
declare @tablename nvarchar(100),@columnname nvarchar(100),@tbID int,@iRow int,@iResult int
declare @sql nvarchar(500)
set @iResult=0
declare cur cursor for
select name,ID from sysobjects where xtype= 'U '
open cur
fetch next from cur into @tablename,@tbID
while @@fetch_status=0
begin
declare cur1 cursor for
--xtype in (231,167,239,175,35) 为char,varchar,nchar,nvarchar,text类型
select name from syscolumns where xtype in (231,35) and ID=@tbID
open cur1
fetch next from cur1 into @columnname
while @@fetch_status=0
begin
set @sql= 'update [ ' + @tablename + '] set [ '+ @columnname + ']= replace([ '+@columnname+ '],' ' '+@delStr+ ' ' ',' ' ' ') where [ '+@columnname+ '] like ' '% '+@delStr+ '% ' ' '
exec sp_executesql @sql
set @iRow=@@rowcount
set @iResult=@iResult+@iRow
if @iRow> 0
begin
print '表: '+@tablename+ ',列: '+@columnname+ '被更新 '+convert(varchar(10),@iRow)+ '条记录; '
end
fetch next from cur1 into @columnname
end
close cur1
deallocate cur1
fetch next from cur into @tablename,@tbID
end
print '数据库共有 '+convert(varchar(10),@iResult)+ '条记录被更新!!! '
close cur
deallocate cur
set nocount off
---------------------------------------------------------------
彻底杜绝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
---------------------------------------------------------------
让3b3.org c.Js注入见鬼去吧!
以上是内存溢出为你收集整理的彻底解决3b3.org数据库sql注入问题全部内容,希望文章能够帮你解决彻底解决3b3.org数据库sql注入问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)