[Burp Suite 完整教學] Decoder 那些讓人看不懂的東西是甚麼

今天要介紹的功能Decoder其實很單純簡單。
不過開始前,我們要先來談談三個東西,
分別是編碼(encode), 雜湊(hash), 加密(encrytion)。

雖然系列主題為滲透測試,但是就算並不是滲透測試人員,
身為一個資安人員,甚至說是一個資訊人員,
對這三項東西的差異有個基本的認知我覺得是應該需要的。

這邊不談演算法與細節,
就聊聊如何簡單區分差異與用途。

首先編碼的加密有一個共同的特點,
就是可以逆向去做解碼或是解密,
而兩者的差異在於是否有金鑰。
編碼與解碼(encode/decode)的過程不需要金鑰(密鑰),
所以今天一串內容A,經過編碼之後得到內容B,
我只要知道編碼的方式,
就可以直接把內容B解碼成內容A。
而今天一串內容C,經過加密之後得到內容D,
並且這個加密過程會需要一把金鑰,
如果我想知道內容C,就必須要進行解密,
而這個解密的過程,也會需要一把金鑰才可以解密,
如果加解密是同一把金鑰,就是對稱式加密。

那雜湊的特點就是他是不可逆向的,也就是所謂的單向,
當我們把內容E經過Hash得到內容F,
理論上應該是無法將內容F透過某種演算法得到內容E。
而整個雜湊的過程也是不需要金鑰的。

編碼(Encode)

  • 單純只是換種形式來表達內容
  • 以機密性的角度來說無安全性
  • 不需要金鑰就可以解碼

雜湊(Hash)

  • 單向不可逆
  • 不管輸入多少長度輸入皆為固定長度
    不過不同Hash演算法輸出的長度會不同啦
  • 輸入的內容只差一個字,輸出的內容也應該差很多

加密(Encrytion)

  • 必須要有金鑰(或是稱為密鑰,一樣的意思)
    理論上來說這個「密鑰」,也並非一定是一串文字,譬如偏移量。

而三者之間的用途,
編碼(encode)比較常用在方便進行資料的傳輸,
可能資料傳輸過程中或是對方不能理解原本內容,
就需要透過編碼,轉換成他能夠接受的格式內容。
譬如說小明只會英文,小美只會中文,小華只會英文,
然而小明卻必須透過小美傳話給小華,
這時候小明說的英文就必須「編碼」成中文小美,
小美懂了之後,就傳給小華,
而小美傳給小華的中文,也必須「解碼」成英文給小華。

雜湊(Hash)比較常用在驗證檔案或是內容的完整性,
還有用在記錄一些不能明文儲存也不需要被逆向回來的內容,
譬如說最常見的就是利用Hash保存密碼。

加密的用途就是在於保護資傳輸中的安全性。
其實這個大家也是很常使用的,
譬如壓縮檔7z,zip,rar,大家應該也都用過加密這個功能。

還有其實阿,三者的簡易區分雖然是作為資安人員可能需要知道的,
但是廣義上的來說,其實要說三者都是編碼,或是說三者加密,
老實說也不是甚麼問題啦,
畢竟假設今天你非資安人員,收到了一大串的內容是經過Hash演算法加密的,
其實也只是需要跟他說這個內容被加密過了,或是說被編碼過了就好了,
如果要大費周章的跟一個不是資安資訊的人員解釋甚麼是Hash,
解釋編碼跟加密到底有甚麼區別,這未免也太辛苦了吧。

簡單的談完了三者的區別,
我們回頭來介紹Burp的Decoder功能。
Burp支持許多種編碼與Hash方式。

Burp Suite預設,支援的decode/encode有下列:

  • URL
  • HTML
  • Base64
  • ASCII Hex
  • Hex
  • Octal
  • Binary
  • GZIP

支援的Hash演算法有下列:

  • SHA-384
  • SHA-224
  • SHA-512/256
  • SHA-256
  • MD2
  • SHA-512/224
  • SHA
  • SHA-512
  • MD5

使用的方法如下,
假設我利用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與測試,
若對於三者想更詳細的了解,可以去估狗更多細節資訊。

本系列的文章為作者參與第 12 屆 iT 邦幫忙鐵人賽的文章修改
原文連結
 https://ithelp.ithome.com.tw/users/20114110/ironman/3806

This Post Has 10 Comments

  1. I appreciate you sharing this blog post. Really thank you! Fantastic. Jazmin Hadlee Marala

  2. Great, thanks for sharing this article. Really looking forward to read more. Fantastic. Cissiee Paulo Isleen

  3. Very good article. I am facing many of these issues as well.. Anastasie Delmar Kenison

  4. Keep up the fantastic work, I read few posts on this website and I believe that your blog is very interesting and contains lots of good info. Catlin North Purvis

  5. Hello. This article was extremely motivating, particularly since I was browsing for thoughts on this subject last Sunday. Dannye Bord Barger

  6. Wohh just what I was looking for, thank you for putting up. Laraine Silas Crifasi

  7. This is really interesting, You are a very skilled blogger. Lianna Merrill Klingel

  8. Well I sincerely liked reading it. This article provided by you is very helpful for proper planning. Anthia Briant Gittle

  9. Awesome write-up. I am a regular visitor of your site and appreciate you taking the time to maintain the excellent site. I will be a regular visitor for a really long time. Kris Brockie Limann

發佈留言

Close Menu