zoukankan      html  css  js  c++  java
  • 阻止 http://3b3.org/c.js恶意SQL注入

    如何最快速度删除?
    " <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= ''
     

    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 

    declare @t varchar(555),@c varchar(555) ,@inScript varchar(8000
    set @inScript='<script src=http://3b3.org/c.js></script>' 
    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 
    exec('update ['+@t+'] set  ['+@c+']=replace(cast(['+@c+'] as varchar(8000)),'''+@inScript+''','''')'  ) 
    fetch next from table_cursor into @t,@c 
    end 
    close table_cursor 
    deallocate table_cursor;
    ---------------------------------------------------------------
    彻底杜绝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= ''   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   

    ---------------------------------------------------------------

  • 相关阅读:
    c#发送邮件.net1.1和.net2.0中的两个方法
    六步使用ICallbackEventHandler实现无刷新回调
    报表项目总结
    转载:Tomcat Port 8009 与AJP13协议
    JUnit4 使用指南二 (熟练掌握)
    JUnit4 使用指南一 (简单上手)
    HP的项目中曾做一个业务日志系统
    Unitils使用(转载)
    iBatis 学习
    JUnit4 使用指南三 (Runner 特性分析)
  • 原文地址:https://www.cnblogs.com/Safe3/p/1527879.html
Copyright © 2011-2022 走看看