狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

數(shù)據(jù)庫被批量注入解決辦法(SQL語句)

admin
2011年1月30日 21:47 本文熱度 3453

針對(duì)最近老是出現(xiàn)的SQL注入,借鑒網(wǎng)上一些SQL語句,寫了如下語句。希望對(duì)中招的朋友有所幫助。


使用方法:復(fù)制以下代碼到SQL查詢分析器,將‘<script src=http://cn.jxmmtv.com/cn.js></script>’修改成被注入的腳本。



declare @delStr nvarchar(500)
set @delStr='<script src=http://cn.jxmmtv.com/cn.js></script>'

set nocount on

declare @tableName nvarchar(100),@columnName nvarchar(100),@tbID int,@iRow int,@iResult int
declare @sql nvarchar(4000)

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) 為char,varchar,nchar,nvarchar類型35為text,99為ntext
        select name from syscolumns where xtype in (35,99) 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+'%'''   
      --execute sp_executesql @sql  --第一次運(yùn)行,先注釋掉本句,查看數(shù)據(jù)庫被破壞情況,根據(jù)情況選擇是否啟用該語句
     
      set @iRow=@@rowcount
      set @iResult=@iResult+@iRow
      print @sql
      fetch next from cur1 into @columnName        
      set     @sql='declare @rowValue varchar(4000);
                  declare @indexofstr int;
                  --declare @badrowcount int;
                  --declare @normalrowcount int;
                  set @badrowcount  = 0
                  set @normalrowcount = 0
                  declare cur2 cursor for select ['+ @columnName +'] from [' + @tableName + '];
                  open cur2;fetch next from cur2 into @rowValue;
                  while @@fetch_status=0
                  begin
                      select @indexofstr = charindex('''+@delStr+''',@rowValue);
                         
                      if(@indexofstr>0)
                            set @badrowcount  = @badrowcount + 1;
                      else


                           set @normalrowcount  = @normalrowcount + 1;
                      fetch next from cur2 into @rowValue;
                  end;
                  close cur2;
                  deallocate cur2;
                  select @maxlength  = max(DATALENGTH( ['+ @columnName +']  )) from [' + @tableName + '] '
      declare @badrowcount int,@normalrowcount int,@maxlength int
      execute sp_executesql @sql,N'@badrowcount int output,@normalrowcount int output,@maxlength int output',@badrowcount output, @normalrowcount output,@maxlength output      
      print '表名:[' +  @tableName  + '] 列名:[' +  @columnName +']'
      print '包含字符串行數(shù):'   + cast (@badrowcount as varchar(20))
      print '不包含字符串行數(shù):' + cast (@normalrowcount as varchar(20))
      print '本列最長(zhǎng)字符串長(zhǎng)度:' + cast (@maxlength as varchar(20))
      print ''
     
   end
   close cur1
   deallocate cur1
  
   fetch next from cur into @tableName,@tbID
end
close cur
deallocate cur
print '數(shù)據(jù)庫共有'+convert(varchar(10),@iResult)+'條記錄被更新'


該文章在 2011/1/30 21:47:07 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved