SQL注入內容更新

2021-05-23 07:55:06 字數 2389 閱讀 7365

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+']))+''''') --這裡是更新語句

fetch next from table_cursor into @t,@c end --獲取一下記錄

close table_cursor --關閉游標

deallocate table_cursor --釋放游標

sql注入處理(2) 收藏

declare @delstr varchar(8000)

set @delstr=''

set @delstr=''

set @delstr=''

set @delstr=''

set @delstr=''

set @delstr=''

set @delstr=''

set @delstr=''

set @delstr=''

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

endclose cur1

deallocate cur1

fetch next from cur into @tablename,@tbid

endprint '資料庫共有'+convert(varchar(10),@iresult)+'條記錄被更新!!!'

close cur

deallocate cur

set nocount off

更新的深入內容

有三個操作可改變表的狀態 插入乙個新行 刪除乙個現有的行 更新乙個現有的行 對於其中的每乙個關鍵操作,資料介面卡都會定義乙個作為屬性公開的自定義的命令物件。這樣的屬性包括insertcommand deletecommand和updatecommand。程式設計師負責為這些屬性分配有意義的命令物件,...

SQL注入的內容和預防

sql注入 sqli 是一種注入攻擊,可以執行惡意sql語句。它通過將任意sql 插入資料庫查詢,使攻擊者能夠完全控制web應用程式後面的資料庫伺服器。攻擊者可以使用sql注入漏洞繞過應用程式安全措施 可以繞過網頁或web應用程式的身份驗證和授權,並檢索整個sql資料庫的內容 還可以使用sql注入來...

SQL注入批量更新語句

sql 2000解決方法 declare fieldtype sysname set fieldtype varchar 刪除處理 declare hcforeach cursor global forselect n update quotename o.name n set quotename ...