iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 12
0
Security

Web滲透測試 - Burp Suite 完整教學系列 第 12

Decoder 那些讓人看不懂的東西是甚麼

  • 分享至 

  • xImage
  •  

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

https://ithelp.ithome.com.tw/upload/images/20200927/20114110OyoTZZeg7W.png

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

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

首先編碼的加密有一個共同的特點,
就是可以逆向去做解碼或是解密,
而兩者的差異在於是否有金鑰。
編碼與解碼(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 解碼成 ='>?

https://ithelp.ithome.com.tw/upload/images/20200927/201141104nqtAPuavp.png

反過來說,
如果我想將1234abc這串內容進行base64 encode,
就在上面內容輸入1234abc,
選擇Eecode as ... base64
就可以成功的得到base64編碼過後的1234abc

https://ithelp.ithome.com.tw/upload/images/20200927/20114110W8tSHjJIoW.png

是不是相當的簡單呢~
Hash的用法其實也是一樣。
不過要注意的其實就是,
因為hash過後結果其實就是Hex而已,
所以在Text部分看到可能都是一些看不懂的東西,
實際上要去看的是那個Hex。

https://ithelp.ithome.com.tw/upload/images/20200927/201141109NHdxMqggx.png

https://ithelp.ithome.com.tw/upload/images/20200927/20114110vTBOwq4aIr.png

不過用起來真的不太方便,
所以Hash我通常也不會利用Burp去做。

做滲透測試,了解編碼(encode), 雜湊(hash), 加密(encrytion),
並且熟悉常見的編碼方式還算是基本的,有時也都會需要使用到編碼與解碼,
譬如像是有看不懂的內容,要利用解碼查看內容以外,
在攻擊的時候也會進行編碼來測試或是嘗試繞過過濾與驗證機制。
URL encode、HTML encode、Base64都算是在Web測試中常見的一些編碼方式。

今天內容就到這邊了~因為重點還在Burp與測試,
若對於三者想更詳細的了解,可以去估狗更多細節資訊。


上一篇
利用Scanner發現網站中可能存在的風險漏洞
下一篇
Intruder 帳密暴力破解與列舉FUZZING找漏洞的好幫手
系列文
Web滲透測試 - Burp Suite 完整教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言