今天要介紹的功能Decoder其實很單純簡單。
不過開始前,我們要先來談談三個東西,
分別是編碼(encode), 雜湊(hash), 加密(encrytion)。
雖然系列主題為滲透測試,但是就算並不是滲透測試人員,
身為一個資安人員,甚至說是一個資訊人員,
對這三項東西的差異有個基本的認知我覺得是應該需要的。
這邊不談演算法與細節,
就聊聊如何簡單區分差異與用途。
首先編碼的加密有一個共同的特點,
就是可以逆向去做解碼或是解密,
而兩者的差異在於是否有金鑰。
編碼與解碼(encode/decode)的過程不需要金鑰(密鑰),
所以今天一串內容A,經過編碼之後得到內容B,
我只要知道編碼的方式,
就可以直接把內容B解碼成內容A。
而今天一串內容C,經過加密之後得到內容D,
並且這個加密過程會需要一把金鑰,
如果我想知道內容C,就必須要進行解密,
而這個解密的過程,也會需要一把金鑰才可以解密,
如果加解密是同一把金鑰,就是對稱式加密。
那雜湊的特點就是他是不可逆向的,也就是所謂的單向,
當我們把內容E經過Hash得到內容F,
理論上應該是無法將內容F透過某種演算法得到內容E。
而整個雜湊的過程也是不需要金鑰的。
編碼(Encode)
雜湊(Hash)
加密(Encrytion)
而三者之間的用途,
編碼(encode)比較常用在方便進行資料的傳輸,
可能資料傳輸過程中或是對方不能理解原本內容,
就需要透過編碼,轉換成他能夠接受的格式內容。
譬如說小明只會英文,小美只會中文,小華只會英文,
然而小明卻必須透過小美傳話給小華,
這時候小明說的英文就必須「編碼」成中文小美,
小美懂了之後,就傳給小華,
而小美傳給小華的中文,也必須「解碼」成英文給小華。
雜湊(Hash)比較常用在驗證檔案或是內容的完整性,
還有用在記錄一些不能明文儲存也不需要被逆向回來的內容,
譬如說最常見的就是利用Hash保存密碼。
加密的用途就是在於保護資傳輸中的安全性。
其實這個大家也是很常使用的,
譬如壓縮檔7z,zip,rar,大家應該也都用過加密這個功能。
還有其實阿,三者的簡易區分雖然是作為資安人員可能需要知道的,
但是廣義上的來說,其實要說三者都是編碼,或是說三者加密,
老實說也不是甚麼問題啦,
畢竟假設今天你非資安人員,收到了一大串的內容是經過Hash演算法加密的,
其實也只是需要跟他說這個內容被加密過了,或是說被編碼過了就好了,
如果要大費周章的跟一個不是資安資訊的人員解釋甚麼是Hash,
解釋編碼跟加密到底有甚麼區別,這未免也太辛苦了吧。
簡單的談完了三者的區別,
我們回頭來介紹Burp的Decoder功能。
Burp支持許多種編碼與Hash方式。
Burp Suite預設,支援的decode/encode有下列:
支援的Hash演算法有下列:
使用的方法如下,
假設我利用URL encode的方式去解碼內容,
先把我想解碼的內容輸入在最上面,
譬如我輸入:
1234abc%3d%27%3e%3f
選擇Decode as ... URL
他就會利用URL編碼去幫我decode,
可以看到成功的幫我把,
%3d%27%3e%3f 解碼成 ='>?
反過來說,
如果我想將1234abc這串內容進行base64 encode,
就在上面內容輸入1234abc,
選擇Eecode as ... base64
就可以成功的得到base64編碼過後的1234abc
是不是相當的簡單呢~
Hash的用法其實也是一樣。
不過要注意的其實就是,
因為hash過後結果其實就是Hex而已,
所以在Text部分看到可能都是一些看不懂的東西,
實際上要去看的是那個Hex。
不過用起來真的不太方便,
所以Hash我通常也不會利用Burp去做。
做滲透測試,了解編碼(encode), 雜湊(hash), 加密(encrytion),
並且熟悉常見的編碼方式還算是基本的,有時也都會需要使用到編碼與解碼,
譬如像是有看不懂的內容,要利用解碼查看內容以外,
在攻擊的時候也會進行編碼來測試或是嘗試繞過過濾與驗證機制。
URL encode、HTML encode、Base64都算是在Web測試中常見的一些編碼方式。
今天內容就到這邊了~因為重點還在Burp與測試,
若對於三者想更詳細的了解,可以去估狗更多細節資訊。