獲取Hackthebox邀請碼教程
登錄社區首頁後,下拉頁面,點擊Join按鈕進入邀請頁面。我們需要通過該頁面展示的信息,獲取邀請碼以註冊社區賬號。這是進入訓練社區的一個小挑戰。
流程
可以直接通過瀏覽器F12工具進行整體挑戰,本篇博客使用Burpsuite工具進行輔助
- 獲取交互資源(報文、js等靜態文件)
- 通過資源分析有用的信息
- 執行隱藏指令獲取邀請碼
- 解密邀請碼
- 完成註冊挑戰
1、獲取交互資源(Burpsuite的使用)
- Burpsuite安裝教程:
https://www.xcnte.com/archives/426/ - 瀏覽器代理:
- 安裝Proxy Switchyomega:
進入谷歌應用商店,搜索該插件並進行添加
- 配置代理情景:
首先進入Burpsuite獲取工具的代理地址
然後在omega插件中配新建情景模式,填充剛剛獲取到的代理地址,完成代理配置
在瀏覽器插件處,點擊剛剛創建的情景名稱,切換至burp工具的代理情景。當瀏覽器設置爲該情景時,所有報文都會經過Burpsuite:
- 開始獲取交互資源
進入Burpsuite,關閉報文截取使能(切換爲OFF態):
重新訪問Hackthebox的邀請碼頁面,然後進入Burpsuite的Target頁面,查看獲取到的資源:
2、資源分析
我們可以在獲取到資源中發現一個名叫inviteapi.min.js的文件,從字面上看,它或許能幫助我們拿到邀請碼。
查看該文件可以發現其爲eval函數,明顯被人爲進行eval加密了,我們需要對其進行解密(可搜索eval解密,在任意網站進行解密,獲取原始代碼)
以下是解密後的代碼:
function verifyInviteCode(code) {
var formData = {
"code": code
};
$.ajax({
type: "POST",
dataType: "json",
data: formData,
url: '/api/invite/verify',
success: function(response) {
console.log(response)
},
error: function(response) {
console.log(response)
}
})
}
function makeInviteCode() {
$.ajax({
type: "POST",
dataType: "json",
url: '/api/invite/how/to/generate',
success: function(response) {
console.log(response)
},
error: function(response) {
console.log(response)
}
})
}
很明顯,makeInviteCode就是我們要的函數
3、執行隱藏函數獲取邀請碼
進入邀請碼頁面,打開F12-console頁面,輸入makeInviteCode()拿到邀請碼:
可以看到邀請碼被進行base64加密了:
data: "SW4gb3JkZXIgdG8gZ2VuZXJhdGUgdGhlIGludml0ZSBjb2RlLCBtYWtlIGEgUE9TVCByZXF1ZXN0IHRvIC9hcGkvaW52aXRlL2dlbmVyYXRl"
enctype: "BASE64"
解密後的內容爲:
In order to generate the invite code, make a POST request to /api/invite/generate
我們需要對/api/invite/generate發送一個post請求才能拿到邀請碼
對於簡單的POST請求,我們可以使用curl命令進行請求:
curl.exe https://www.hackthebox.eu/api/invite/generate -X POST
我們獲得了一個encoded了的邀請碼,試試使用Base64解碼:
OOKVA-PSKVK-JOJXC-JLFCX-VSXKM
看來我們拿到了邀請碼。
完成挑戰
將邀請碼輸入填充框,完成初次註冊挑戰。