---
# System prepended metadata

title: HTB TwoMillion Writeup
tags: [Vulnhub]

---

# HTB TwoMillion Writeup

nmap掃描結果，有開22跟80 port
![image](https://hackmd.io/_uploads/H19SbQ1m0.png)

連過去網頁是舊版HTB的頁面
![image](https://hackmd.io/_uploads/r1LH4EEX0.png)

如果要辦帳號需要邀請碼
![image](https://hackmd.io/_uploads/Hk0cSNVQA.png)

原始碼內可以看到如何生成邀請碼
![image](https://hackmd.io/_uploads/Sy4wPLkQC.png)

點到 http://2million.htb/js/inviteapi.min.js ，裡面內容被加密過，要去解密
![image](https://hackmd.io/_uploads/rk-Yv81Q0.png)

把這段貼到解密網站，可以看到解密後的明文code
https://lelinhtinh.github.io/de4js/
這邊顯示要用api只能用POST去訪問
![image](https://hackmd.io/_uploads/rJIXv8JQ0.png)

透過POST去訪問有一串密文，這邊有提示是ROT13加密
`curl -X POST http://2million.htb/invite/api/v1/invite/how/to/generate`
![image](https://hackmd.io/_uploads/SkpDc817A.png)

ROT13加密，解密結果，有一串邀請碼生成路徑
![image](https://hackmd.io/_uploads/ryM9q8JmC.png)

透過POST去訪問
`curl -X POST http://2million.htb/api/v1/invite/generate`
![image](https://hackmd.io/_uploads/HyIn5Lk7A.png)

獲得一串base64，拿去decode獲得邀請碼
![image](https://hackmd.io/_uploads/HkrGo8y7C.png)

可以去辦帳號登入HTB了
![image](https://hackmd.io/_uploads/r1rn3NNQR.png)

進入後，可以去access頁面載VPN連線檔
![image](https://hackmd.io/_uploads/rJgBRNN7C.png)

透過burp可以看到他透過API去請求VPN生成
![image](https://hackmd.io/_uploads/B1qu0VVXA.png)

`/api/v1`裡面可以看到各種API的功能
![image](https://hackmd.io/_uploads/SyGhHD1XC.png)

如果直接請求`/admin/setting/update` 他會跟你講content-type錯誤
![image](https://hackmd.io/_uploads/HyiZ1HV7C.png)

指定為`applocation/json`後，會顯示缺少email
![image](https://hackmd.io/_uploads/H1ZBkSEmR.png)

輸入我們自己的mail之後會顯示缺少是不是admin的判斷
![image](https://hackmd.io/_uploads/B1npyBNQC.png)

把要求的參數都加進去之後，這邊就把自己更新成admin了
![image](https://hackmd.io/_uploads/ry5T4wJmR.png)

透過`/admin/vpn/generate`裡面的命令注入漏洞可以獲得底層的控制權限
>這邊要再指令後面插入注釋`#`才能成功利用
![image](https://hackmd.io/_uploads/BJTxuFlQC.png)

這邊讀取`.env`檔案，通常這檔案裏面都會放些機密性比較高的資訊
![image](https://hackmd.io/_uploads/rkmM_FgX0.png)
* DB_USERNAME=admin
* DB_PASSWORD=SuperDuperPass123

利用ssh連線過去之後就可以看到user flag
![image](https://hackmd.io/_uploads/SJkDqtxm0.png)

`find / -perm -u=s 2>/dev/null` 搜尋帶SUID的文件
找到別人留下的CVE檔案
![image](https://hackmd.io/_uploads/B1Xcncl7R.png)
>正規方法是email裡面有漏洞利用的提示
>![image](https://hackmd.io/_uploads/rJvcjjeXR.png)

https://github.com/Fanxiaoyao66/CVE-2023-0386
利用方式是分別開兩個終端執行，如下圖
成功利用後就獲得root flag
![image](https://hackmd.io/_uploads/BkI0bog7A.png)





















