HACKMD: https://hackmd.io/@jeff14994/ByyGbxMPL
從Hack The Box 邀請碼學Web基礎
tags: Developers' Tools
Js反混淆
加/解密
POST request
編/解碼
0x00 前言
Hack The Box官網介紹
A massive playground for you to learn
and improve your pen-testing skills.
簡單來說,Hack The Box就是一個讓你挑戰極限滲透測試的地方。我自己在挑戰的時候, 也遇到許多挫折;不過也受益匪淺,透過尋找相關漏洞,也融會貫通舊有的Web知識。因此,我將這次的獲取HTB(Hack The Box)邀請碼挑戰過程紀錄下來,當作技術筆記。然而,想要登門挑戰,沒有三兩三,豈敢上梁山?因此HTB官網設置了第0關,想要登入,就必須先破解並獲取驗證碼註冊登入。
總共,五關卡。每破解一關,除了離取得邀請碼更近之外,也更進一步學習Web的基礎,著實看到HTB的用心良苦。
0x01 -> 挑戰入口
若要挑戰,請點擊此處:HTB獲取邀請碼網址
0x02 -> 使用開發者工具
首先,先開啟開發者工具(Mac:command+option+i; Win:F12)。在Console會發現一個骷髏頭畫面。
覺得事有玄機,因此將Element, Sources, Network頁籤全點開過一次。發現在Sources -> www.hackthebox.eu -> js -> inviteapi.min.js 裡面發現一個很特別的JavaScript的檔案。
inviteapi.min.js程式內容:
發現被混淆了,看不是很懂裡面的內容,但勉強可以看出它是一個function。
0x03 -> 將JavaScript反混淆
是一個線上工具
用途:Beautify, unpack or deobfuscate JavaScript and HTML, make JSON/JSONP readable, etc.
使用方法,將程式碼複製貼上。再按下Beautify Code,即可獲得非混淆的程式碼。
我們將程式碼反混淆後,得到兩個JavaScript function。
第一個function似乎用來驗證邀請碼,第二個function用來產生邀請碼。兩個function與對應的網址以POST method傳遞資料。因為我們還沒有邀請碼,因此不用第一個function,而是用第二個function來產生驗證碼。
這邊有兩個方法可以產生邀請碼:
- 直接在瀏覽器開發者工具中的console,下makeInviteCode()
- 使用curl
curl -X POST https://www.hackthebox.eu/api/invite/how/to/generate
這邊我們填上相對應得domain(https://www.hackthebox.eu)與directory(/api/invite/how/to/generate)
獲得資訊:
data: "Va beqre gb trarengr gur vaivgr pbqr, znxr n CBFG erdhrfg gb /ncv/vaivgr/trarengr"
enctype: "ROT13"
原來是一個加密文字,透過ROT13加密。知道這些資訊後,接著便要開始解密了!
0x04 -> 解密
隨手Google ROT13,發現了一個網站。
ROT13線上解密
ROT13 (“rotate by 13 places”, sometimes hyphenated ROT-13) is a simple letter substitution cipher that replaces a letter with the 13th letter after it, in the alphabet. ROT13 is a special case of the Caesar cipher which was developed in ancient Rome.
Ctrl+c, Ctrl+v,線上解密後得到另一個網址。
於是,我們繼續使用curl,以POST method向https://www.hackthebox.eu/api/invite/generate/獲取資訊。
0x05 -> 發Request
curl -X POST https://www.hackthebox.eu/api/invite/generate/
看到後面有一個=,大膽猜測這是Base64編碼(其常見的特徵)。上網搜尋Base64 decode online。
開始decode!
0x06 -> 解碼
In computer science, Base64 is a group of binary-to-text encoding schemes that represent binary data in an ASCII string format by translating it into a radix-64 representation.
複製貼上、解碼、獲得邀請碼(碼一下XD)
這樣就可以登入囉!
0x07 -> 總結
HTB invite網站 -> 開法者工具 -> JavaScript反混淆檔 -> 解密 -> 發Request -> 解碼 -> Success
祝大家 Happy Hacking!