資料庫注入js指令碼

來源:互聯網
上載者:User

最近公司總是 被攻擊,資料庫中的很多表被注入了js 指令碼,比如

"<Script Src=http://c.nuclear3.c%6F%6D/css/c.js></Script><Script Src=http://c.%6Euclear3.com/css/c.js></Script><script src=http://cn.daxia123.cn/cn.js>",等等類似

於是寫了一個替換語句來替換掉那些指令碼,主要就是把指令碼替換為空白格,使用這條語句只要在下面這個地方,將你要尋找並替換的關鍵換掉就可以了,

   --要替換的文字
    set @mySqlForReplaceSrc='<Script Src='

 如果你不想替換為空白格,那麼在 +@quto+@quto+  之間 加入你要替換的文本就可以了

 

 

Deallocate Table_Cursor 
go

Declare @T Varchar(255),@C Varchar(255) ,@cnt int
Declare @mySqlForCount nvarchar(3000),@mySqlForSelect nvarchar(3000),@mySqlForReplace nvarchar(3000),@mySqlForReplaceText nvarchar(3000),@num int
Declare @mySqlForWhere nvarchar(500),@mySqlForReplaceSrc nvarchar(500)
Declare @quto nvarchar(500)

set @cnt = 0
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
  
    --要替換的文字
    set @mySqlForReplaceSrc='<Script Src='

    --where條件
    set @mySqlForWhere='where ['+@C+'] like ''%'+@mySqlForReplaceSrc + '%'''

 

   --這裡主要是為了轉義‘ 單引號
    set @quto=''''

    set @mySqlForSelect='select '+@C+' from ['+@T+'] '+@mySqlForWhere
   

 set @mySqlForReplace='update '+@T+' set ['+@C+']= replace(['+@C+'],'+@quto+@mySqlForReplaceSrc+@quto+','+@quto+@quto+') ' +@mySqlForWhere
   

set @mySqlForReplaceText='update '+@T+' set ['+@C+']= replace(Cast(['+@C+'] as varchar(8000)),'+@quto+@mySqlForReplaceSrc+@quto+','+@quto+@quto+') ' +@mySqlForWhere
 

    set @mySqlForCount='select @a=count(*) from ['+@T+'] '+@mySqlForWhere

    exec sp_executesql  @mySqlForCount,N'@a int output',@num output
    if @num>0
        begin
   --print @mysqlForReplace

   --查詢
             exec (@mysqlForSelect)

--替換語句
             --exec (@mysqlForReplace)

              --exec (@mysqlForReplaceText)
          
        end
   set @cnt = @cnt+1
   Fetch Next From  Table_Cursor Into @T,@C
End
Close Table_Cursor
print @cnt
Deallocate Table_Cursor

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.