当前位置:  数据库>sqlserver

sql注入数据库修复的两种实例方法

    来源: 互联网  发布时间:2014-10-12

    本文导语:  1.第一种情况是 需要将指定的 注入字符串全部替换掉(仅替换注入的字符串为空) 代码如下:declare @delStr nvarchar(500)    set @delStr='' --这里被注入的字段串    /****************************************/   /**********以下为操作实体*********...

1.第一种情况是 需要将指定的 注入字符串全部替换掉(仅替换注入的字符串为空)

代码如下:

declare @delStr nvarchar(500)   
set @delStr='' --这里被注入的字段串   
/****************************************/  
/**********以下为操作实体************/   
set nocount on 
declare @tableName nvarchar(100),@columnName nvarchar(100),@tbID int,@iRow int,@iResult int  
declare @sql nvarchar(2000)  
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  
select name from syscolumns where xtype in (231,167,239,175, 35, 99) and id=@tbID   
open cur1   
fetch next from cur1 into @columnName   
while @@fetch_status=0   
begin  
set @sql='update [' + @tableName + '] set ['+ @columnName +']= SUBSTRING([' + @columnName + '],' + '1, PATINDEX( ''%' + @delStr + '%'', [' + @columnName + '])-1) + ' + 'SUBSTRING([' + @columnName + '], PATINDEX( ''%' + @delStr + '%'', [' + @columnName + ']) + ' + 'len(''' + @delStr + ''') , datalength([' + @columnName + '])) 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

2.第二种是  需要将注入到表中起始位置到最后都删掉。(此种方法直接找到注入的起始位置,后面的全部删掉)

代码如下:

--恢复被注入数据库   
--2013-09-26  
declare @delStr nvarchar(500)   
set @delStr='.' --被注入的字段串的开始采样,从此位置后面的数据都为注入数据  

/**********以下为操作实体************/   
set nocount on 
declare @tableName nvarchar(100),@columnName nvarchar(100),@tbID int,@iRow int,@iResult int  
declare @sql nvarchar(2000)  
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  
select name from syscolumns where xtype in (231,167,239,175, 35, 99) and id=@tbID   
open cur1   
fetch next from cur1 into @columnName   
while @@fetch_status=0   
begin  
set @sql='update [' + @tableName + '] set ['+ @columnName +']=  
 SUBSTRING([' + @columnName + '],1, PATINDEX( ''%' + @delStr + '%'', [' + @columnName + '])-1)   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

    
 
 

您可能感兴趣的文章:

  • Practico CMS 'uid' SQL注入漏洞
  • C#使用带like的sql语句时防sql注入的方法
  • 堵住sql server中sql注入漏洞的的方法
  • SQL注入测试平台 SQLol
  • 开源跨平台SQL注入漏洞扫描工具 Hexjector
  • Java自动化SQL注入测试工具 jSQL
  • 自动 SQL 注入工具 sqlmap
  • php防止sql注入代码实例
  • SQL盲注入工具 BlindSQLInjector
  • SQL注入漏洞检测&利用工具 aidSQL
  • sql绕过单引号限制继续注入的解决方法
  • 三步堵死 SQL Server注入漏洞
  • php is_numberic函数产生sql注入漏洞怎么解决
  • 经典sql代码--解决并清除SQL被注入恶意代码的语句
  • php中sql注入漏洞示例 sql注入漏洞修复
  • 防止sql注入方法与实例代码
  • 解析:清除SQL被注入恶意病毒代码的语句
  • SQL 注入式攻击的本质
  • php防SQL注入代码(360提供)
  • 输入值/表单提交参数过滤有效防止sql注入的方法
  • 操作系统 iis7站长之家
  • SQL Server数据库的修复SQL语句
  • 修复断电等损坏的SQL 数据库
  • SQL Server误区30日谈 第21天 数据损坏可以通过重启SQL Server来修复
  • SQL Server误区30日谈 第16天 数据的损坏和修复
  • 教你轻松恢复/修复SQL Server的MDF文件
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • sql语句实例 取得日志条目的sql语句
  • SQL分组排序去除重复实例
  • T-SQL实例 函数结果设置为列别名
  • 怎样不执行SELECT SQL语句即可获得ResultSetMetaData实例????
  • sql语句实例 统计一个特定页面中的相关链接
  • SQL分组排序去重复的小实例
  • sql语句实例 统计页面链接的sql语句
  • 教你怎么使用sql游标实例分享
  • mysqli多条sql语句查询实例
  • MSSQL中递归SQL查询语句实例说明-
  • sql语句not and or执行顺序(实例解析)
  • Sql Server中存储过程中输入和输出参数(简单实例 一看就懂)
  • SQL语句练习实例之七 剔除不需要的记录行
  • SQL cursor用法实例
  • sql server 触发器实例(判断是插入、删除,还是修改)
  • sql中获取分组排序后数据方法实例
  • sql条件查询语句的简单实例
  • sql server 触发器实例:特定字段更新时触发Update触发器
  • sql语句like多个条件的写法实例
  • SQL自连接(self join)实例学习
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3