在SqlServer經常在
數據加密存在,如密碼域,我們可以使用Sql自帶加密功能pwdencrypt()加密,加密不能解決密碼,需要使用pwdcompare(\'原\',\'密碼\')對比,如果返回的結果為1,表示密碼匹配,如果不匹配0
例如:
declare@pwdvarchar(50)
declare@en_pwdvarbinary(256)
select@pwd=\'abc\'
select@en_pwd=pwdencrypt(@pwd)
selectpwdcompare(@pwd,@en_pwd)
返回的結果是1,說。
有一個小細節需要注意,其實是有一個參數,pwdcompare():
pwdcompare(@pwd,@en_pwd,1|0)
最后一個參數1,密碼是區分大小寫的,但是默認是0是加密的,不區分大小寫。
無意中看到這個帖子,pwdencrypt()說有漏洞,使用的時候還是小心為好。
描述:
MicrosoftSQLServer2000緩沖區溢出漏洞允許訪問控制系統
詳細的:
MicrosoftSQLServer2000內置了一個哈希函數,命名為pwdencrypt()。
這個函數在緩沖/堆棧溢出的存在,允許攻擊者發動拒絕服務攻擊,使SQLServer崩潰,通過適當的方式來構建shellcode,可能導致攻擊者可以以系統權限執行任意指令。
下面的示例通過長字符串的353個字符(A)將使SQLServer2000崩潰:
Selectpwdencrypt(REPLICATE(\'A\',353))
有些系統可能需要一個較長的字符串來實現的攻擊效果,但1000個字無論如何都足以讓SQLServer崩潰。
攻擊的方法:
下面的示例通過長字符串的353個字符(A)將使SQLServer2000崩潰:
Selectpwdencrypt(REPLICATE(\'A\',353))
有些系統可能需要一個較長的字符串來實現的攻擊效果,但1000個字無論如何都足以讓SQLServer崩潰。
一直沒有找到有效的,可能會導致非法訪問控制系統shellcode代碼。
在SQLServer加密數據,有三種方法,
在1、編程語言對數據進行加密,然后將加密后的數據存儲在數據庫中的SQLServer;
2、使用SQLServer未公開的加密密碼的功能,在SQL代碼在調用加密密碼的加密數據存儲功能。
3、編寫擴展存儲過程的外部DLL文件加密,然后通過SQL代碼調用加密函數實現數據加密。
第一種方法是不再描述,使用數據加密的代碼示例二方法:
createtable#temptable(iorderint,pswdvarbinary(1024))
go
insertinto#temptablevalues(1,pwdencrypt(\'yang\'))
insertinto#temptablevalues(2,pwdencrypt(\'lian\'))
insertinto#temptablevalues(3,pwdencrypt(\'shan\'))
go
select*from#temptable
go
--數據相等
select*from#temptable
wherepwdcompare(\'lian\',pswd)=1
go
droptable#temptable
go
上面的聲明,使用第二功能:pwdencrypt和pwdcompare,實現功能,pwdencrypt兩SQLServer秘密返回到輸入數據的二進制形式的加密內容進行加密,并pwdcompare用來檢查非常清楚,加密的二進制數據內容是平等的,沒有解密功能。兩功能主要是用來稱呼自己的內部SQLServer。具有方便調用的優點。不利的是,這兩個功能是不公開的,意味著可以改變,而不是原來的兼容,在使用風險。
第三種方法,一種使用SQLServer擴展存儲過程,sp_addextendedproc,擴展存儲過程的名字命名新注冊的MicrosoftSQLServer。語法已經寫在外部DLL文件函數引入到SQLServer:sp_addextendedproc[@functname=]\'procedure\',[@dllname=]\'dll\'。它的功能,可供其他SQL代碼調用。例如使用:
USEmaster
GO
EXECsp_addextendedproc\'xp_hello\',\'c:/xp_hello.dll\'
功能xp_hello外部文件DLLc:/xp_hello.dll介紹給SQLServer在上述語句執行后,主庫更xp_hello擴展存儲過程,我們在其他腳本將可以調用擴展存儲過程的上述聲明中說。一點有限的執行只,sp_addextendedproc在master如果其他圖書館的電話xp_hello,需要添加master定義庫名。
如何想進一步了解
數據庫加密軟件的介紹可以武漢智融科技官網產品中心進行詳細了解。
本文鏈接:http://www.bj-meiling.com/a/jiamijishu/shujukujiami/2015/0515/349.html