亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡,我們將竭誠為您提供優(yōu)質(zhì)的服務! 誠征網(wǎng)絡推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業(yè)務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發(fā)消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術(shù)支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

SQL SERVER數(shù)據(jù)庫口令的脆弱性

添加時間:2012-12-8 16:53:14  添加: 思海網(wǎng)絡 
跟蹤了一下SQL SERVER數(shù)據(jù)庫服務器的登錄過程,發(fā)現(xiàn)口令計算是非常脆弱的,SQL SERVER數(shù)據(jù)庫的口令脆弱體現(xiàn)兩方面:

1、網(wǎng)絡登陸時候的口令加密算法

2、數(shù)據(jù)庫存儲的口令加密算法。

下面就分別講述:

1、網(wǎng)絡登陸時候的口令加密算法

SQL SERVER網(wǎng)絡加密的口令一直都非常脆弱,網(wǎng)上有很多寫出來的對照表,但是都沒有具體的算法處理,實際上跟蹤一下SQL

SERVER的登陸過程,就很容易獲取其解密的算法:好吧,我們還是演示一下匯編流程:

登錄類型的TDS包跳轉(zhuǎn)到4126a4處執(zhí)行:

004DE72E:根據(jù)接收到的大小字段生成對應大小的緩沖區(qū)進行下一步的拷貝

004DE748從接收到的TDS BUF偏移8處拷貝出LOGIN的信息

004DE762:call sub_54E4D0:將新拷貝的緩沖壓入進行參數(shù)檢查的處理

依次處理TDS包中的信息,各個字段氣候都應該有各個域的長度,偏移0X24處與長度進行比較。

下面這段匯編代碼就是實現(xiàn)對網(wǎng)絡加密密碼解密的算法:

.text:0065C880                 mov     cl, [edi]    .text:0065C882                 mov     dl, cl    .text:0065C884                 xor     cl, 5    .text:0065C887                 xor     dl, 0AFh    .text:0065C88A                 shr     dl, 4    .text:0065C88D                 shl     cl, 4    .text:0065C890                 or      dl, cl    .text:0065C892                 mov     [edi], dl    .text:0065C894                 inc     edi    .text:0065C895                 dec     eax    .text:0065C896                 jnz     short loc_65C880    .text:0065C898                 jmp     loc_4DE7E6


很容易就將其換成為C代碼,可以看出其加密及其簡單,和明文沒什么區(qū)別,呵呵,大家可以在SNIFFER中嵌入這段代碼對嗅嘆到的TDS登陸包進行解密,其實0XA5不是特定的SQL SERVER密碼字段的分界符號,只是由于加密算法會自動把ASC的雙字節(jié)表示的0x0加密成0xa5而已,但是如果允許雙字節(jié)口令,這個就不是判斷其分界的主要原因了。

void sqlpasswd(char * enp,char* dnp){    int i;    unsigned char a1;    unsigned char a2;    for(i=0;i<128;i++)    {        if(enp[i]==0)            break;        a1 = enp[i]^5;        a1 = a1 << 4;        a2 = enp[i]^0xaf;        a2 = a2 >> 4;        dnp[i]=a1|a2;    }    dnp[i]=0;    dnp[i+1]=0;    wprintf(L"passwd:%s\n",(const wchar_t *)dnp);}


2、數(shù)據(jù)庫存儲的口令加密算法

SQL SERVER的口令到數(shù)據(jù)庫存儲的加密方法,也是讓人怪異的。其過程如下:

在獲得網(wǎng)絡解密密碼的口令以后在005F9D5A處call SQLSORT_14,實現(xiàn)一個轉(zhuǎn)換為大寫口令緩沖進行保存。

然后在004def6d處調(diào)用一個函數(shù)取出數(shù)據(jù)庫中的加密的PASSWORD,其形式如下:

2個字節(jié)的頭0x0100(固定)  4個字節(jié)的HASH加秘KEY20個字節(jié)的HASH120個字節(jié)的HASH2


如我取出的一個例子:

fx:0x0100 1751857F DFDEC4FB618D8D18EBA5A27F615639F607CD46BE DFDEC4FB618D8D18EBA5A27F615639F607CD46BE    固定    補充KEY   HASH1                          HASH2口令是:123456


SQL首先用4個字節(jié)的HASH加秘KEY補上其兩處口令的緩沖,一個為大寫,一個為小寫。然后其加密過程如下C函數(shù):

CryptAcquireContextW(&hProv,NULL,L("Microsoft Base Cryptographic Provider v1.0"),1,0xf0000000);    CryptCreateHash(hProv,0x8004,NULL,NULL,&hhash);    CryptCreateHash(hProv,0x8004,NULL,NULL,&hHash);005F9DFE:    CryptHashData(hhash,passwdbuf,0x12,NULL);passwdbuf是小寫的passwd緩沖區(qū),然后附加一個KEY,如上例子就是對    {'1','2''3''4''5''6',0x17,0x51,0x85,0x7F}這樣的一個字串進行HASH加密    CryptHashData(hHash,PASSWDBUF,0x12,NULL);PASSWDBUF是大寫的passwd緩沖區(qū),然后附加一個KEY 005F9E3E:    CryptGetHashParam(hhash,2,&passwdout,&outlen,0);取出passwdbuf是小寫的passwd的加密值    CryptGetHashParam(hHash,2,&PASSWDOUT,&OUTLEN,0);



取出passwdbuf是大寫的passwd的加密值這兩個相加就是真正的數(shù)據(jù)庫中的PASSWORD加密字段.

為什么說以上方法是脆弱的呢?其實其真正的加密長度生成只有20個字節(jié)。

小寫口令的HASH1+大寫口令的HASH1拼接的40位HASH值的安全度還不如一個直接20位的HASH值來得安全。因為大家都知道這兩個值的因果關(guān)系,

提供給了解密者更多的信息。

如因為其算法一樣,如果HASH1=HASH2,就可以判斷口令肯定是未使用字母,只使用了數(shù)字和符號的口令,如上取出的123456口令的HASH,兩個HASH完全相等。

就是使用了字母,其知道補充的KEY,算法,兩個加密字串的關(guān)系,其解應該也是大大的簡化了。

關(guān)鍵字:SQL SERVER、數(shù)據(jù)庫、服務器

分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務經(jīng)營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網(wǎng)站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網(wǎng)安 舉報有獎  警警  手機打開網(wǎng)站