SQL資料庫表防JS木馬注入

2022-02-18 15:27:01 字數 2421 閱讀 9946

今天早上,開啟**一看,發現在自己的**裡面的全部不顯示了,取而代之的是一串木馬**,被黑!

**

----------------------

替換資料表中每個字元段內中的特殊值

------------------------

--鑑於獲取資料表的列表資料時候經常需要獲取欄位名稱。特整理了下如下**。

--適用場合:設計或者更新sql儲存過程的select語句或者insert語句

--返回字串格式類似於:

"id,begintime,endtime,addip,updateuser,updatetime,updateip"--

select name from syscolumns where id

=object_id(

'資料表名稱')

--定義資料表名稱

declare @targettablename nvarchar(

250)

set @targettablename='

表名稱'

--定義列總數

declare @totlecolumns

intselect @totlecolumns

=count(

*) from syscolumns where id

=object_id(@targettablename)

--print @totlecolumns

--select

*from syscolumns where id

=object_id(@targettablename)

--定義所有欄位名稱字串

declare @columnsstring nvarchar(

4000

) declare @tempname nvarchar(

4000

) set

@columnsstring=''

set@tempname=''

declare @i

intset@i=

2while

@i<=

@totlecolumns

begin

select @tempname

=name from syscolumns where id

=object_id(@targettablename) and colorder

=@i

exec(

'update '+

@targettablename+'

set '+

@tempname+'

= replace('+

@tempname+'

,'''',

'''')'

) --

set @columnsstring

=@columnsstring+'

,'+@tempname

set@i=@i

+1end

--顯示結果

exec(

'select * from '+

@targettablename

)

本來想使用游標實現整個資料庫的遍歷,由於時間緊湊,就手動的一張張表進行篩選。

對於資料庫安全性的解決之道:

sql 2000的做法:

1、不要使用sa使用者連線資料庫

2、新建乙個public許可權資料庫使用者,並用這個訪問資料庫

3、[角色]去掉角色public對sysobjects與syscolumns物件的select訪問許可權 

4、[使用者]使用者名稱-> 右鍵-屬性-許可權-在sysobjects與syscolumns上面打「×」 

5、通過以下**檢測(失敗表示許可權正確,如能顯示出來則表明許可權太高):

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)

open table_cursor

fetch next from table_cursor into @t,@c

while(@@fetch_status=0)

begin print @c

fetch next from table_cursor into @t,@c

end

close table_cursor

deallocate table_cursor

恩,就是這樣了,但願該木馬不要再來興風作浪

SQL資料庫表防JS木馬注入

今天早上,開啟 一看,發現在自己的 裡面的全部不顯示了,取而代之的是一串木馬 被黑!替換資料表中每個字元段內中的特殊值 鑑於獲取資料表的列表資料時候經常需要獲取欄位名稱。特整理了下如下 適用場合 設計或者更新sql儲存過程的select語句或者insert語句 返回字串格式類似於 id,begint...

sql防注入防範sql注入式攻擊js版本

asp版的防範sql注入式攻擊 response.write alert 非法位址!response.write location.href error.asp response.write end if 以下是較為簡單的防範方法,這些都是大家比較熟悉的方法,我就是 過來。希望能給你一點幫助 主要是...

mysql資料庫sql注入原理 SQL注入原理

結構化查詢語句 structured query language,縮寫 sql 是一種特殊的程式語言,用於資料庫中的標準資料查詢語言。sql注入 sql injection 是一種常見的web安全漏洞,攻擊者利用這個問題,可以訪問或者修改資料,或者利用潛在的資料庫漏洞進行攻擊。什麼是sql注入?s...