天天看點

Md5(base64)加密與解密實戰 (一)md5(dbase64)密碼 (二)從Google尋找破解之路 (三)自己動手豐衣足食——尋求解密方法 (四)探尋md5(base64)的其它破解方式 (五)總結

Md5(base64)加密與解密實戰

陳小兵 [A.S.T]

本文已被黑客防線錄用,轉載請注明出處!

在對某一個CMS系統進行安全檢測時,通過注入點擷取其管理者表中的管理者和密碼資料,但由于不知道該密碼資料采用何種加密方式,雖然知道CMS系統管理背景,但苦于沒有破解管理者的密碼,是以無法登入系統。通過研究終于掌握了Md5(base64)加密原理和解密原理,是以才有本文。

Base64是網絡上最常見的用于傳輸8Bit位元組代碼的編碼方式之一,在發送電子郵件時,伺服器認證的使用者名和密碼需要用Base64編碼,附件也需要用Base64編碼。Base64要求把每三個8Bit的位元組轉換為四個6Bit的位元組(3*8 = 4*6 = 24),然後把6Bit再添兩位高位0,組成四個8Bit的位元組,也就是說,轉換後的字元串理論上将比原來的長1/3。

md5的全稱是message-digest algorithm 5(資訊-摘要算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest開發出來,經md2、md3和md4發展而來。它的作用是讓大容量資訊在用數字簽名軟體簽署私人密匙前被“壓縮”成一種保密的格式(就是把一個任意長度的位元組串變換成一定長的大整數)。

md5(dbase64)加密後的字元串長度為24位,最末尾有兩個“=”好,在字元串中有數字字母大小寫混在一起,如圖1所示,三個使用者以及其加密後的密碼字元串。md5(dbase64)這種加密方式在asp.net等CMS環境中會經常碰到。

圖1 md5(dbase64)密碼

直接在Google上面對“md5(dbase64)加解密”進行搜尋,一共約六條記錄,如圖2所示,而且從搜尋結果來看,除了求助外,根本就沒有md5(dbase64)的加密和解密方法,從網絡來解決問題看來是不行了。

圖2 Google搜尋結果

圖3 生成各種Hash值

<b>Haval128(Base64):1xehfrgfAcMYLCdLcYiDlg==</b>

<b>Haval160(Base64):JPfaQRoHY0v/EJnXN9iKd9MfdbE=</b>

<b>MD2(Base64):d+K74ta9Vhbr4yuKzfCAZQ==</b>

<b>MD4(Base64):QPRz/CVV3O9EVOA/iCaOwA==</b>

<b>MD5(Base64):Ar2S+qOKqmzA6nXlmTeh7w==</b>

“<b>MD5(Base64):Ar2S+qOKqmzA6nXlmTeh7w==</b><b>”跟圖1</b><b>中的加密值一緻,如圖4</b><b>所示,驗證了該加密方式就是MD5(Base64)</b><b>加密。</b>

圖4 找到加密方式

從http://www.insidepro.com/eng/passwordspro.shtml頁面上我了解到passwordspro可以破解MD5(Base64)加密方式,但無法從該網站直接下載下傳passwordspro,老外都是收錢的,呵呵,到國内的一些下載下傳網站下載下傳passwordsprov2.5.3.0,然後運作該程式,右鍵單擊後選擇Add,如圖5所示,添加一個Hash進行破解,在Hash值中輸入“<b>MD5(Base64):Ar2S+qOKqmzA6nXlmTeh7w==</b>”,完畢後單擊“Add”按鈕完成Hash值的添加。

圖5 添加破解Hash值

單擊三角形按鈕,運作破解,如圖6所示,選擇暴力破解,在passwordsprov2.5.3.0中還有其它的破解方式,如圖7所示,還有“Preliminary Attack”,“Mask Attack”,“Simple Dictionary Attack”,“Combined Dictionary Attack”,“Hybrid Dictionary Attack”和“Rainbow Attack”六種破解方式。

圖6 暴力破解md5(base64)密碼

圖7多種破解方式

圖8 使用字典破解成功

圖9 base64解碼工具

圖10 執行解碼批處理檔案

   将md5(base64)加密後的密碼值“Ar2S+qOKqmzA6nXlmTeh7w==”複制到base64.b64檔案中,如圖11所示。

圖11 編輯解碼檔案

    使用UltraEdit-32編輯器打開“base64.tmp”檔案,如圖12所示,在“base64.tmp”檔案中顯示為亂碼。關于這點我也很是奇怪,後面通過其它一些base64解碼工具進行解碼,其正常顯示結果仍然為亂碼。

圖12 檢視解碼後的檔案

圖13 擷取二進制的值

圖14 md5解密

(a)首先對字元串進行md5加密 md5(string)

(b) 然後對md5加密後的字元串進行base64編碼

(a)首先對md5(base64)進行base64解碼

(b)對base64解碼後的值通過二進制方式進行讀取,其結果應該為32位字元串

(c)對擷取的32位字元串進行md5解密。

圖15 成功擷取該系統的Webshell

 本文轉自 simeon2005 51CTO部落格,原文連結:http://blog.51cto.com/simeon/217051

上一篇: nfs簡述

繼續閱讀