Hack the box Oopsie题解
扫机器
拿到目标机器的IP,先看一下,开放了什么端口
1 | nmap -sC -sV 10.129.95.191 |
80和22端口有服务在运行,先从80端口入手
在访问80端口的服务时看到这一句话,就是要让我们找登录页,但是并没有找到可以点击登录的地方
路径泄漏
F12打开调试就看到了泄露的路径
看到可以以游客的身份登录
登陆后看到有上传的地方,这就是我们的突破口
但是需要超级管理员的账号
越权
当点进Account页面的时候URL引起了注意,id=2,那就意味着id=1是管理员账号了,那就试试
Account确实是变成了admin,但是点到Uploads的时候还是显示需要管理员账号,那我们可以尝试看看能不能从cookie入手
对应修改好后,上传页就能用了
上传webshell
用的是kali自带的php-reverse-shell.php,使用方法GitHub上有
利用成功,找有用的信息
信息收集
在/var/www/html/cdn-cgi/login
目录下发现了db.php
,并且拿到了数据库的账号密码,
在/home/robert
下拿到了user.txt
切换交互式shell
1 | SHELL=/bin/bash script -q /dev/null |
提权
用前面得到的信息切换到robert用户,然后使用id发现还有一个bugtracker组,查找此组是否具有特殊的访问权限
1 | find / -type f -group bugtracker 2>/dev/null //-type f 为查找普通文档,-group bugtracker 限定查找的组为bugtracker,2>/dev/null 将错误输出到黑洞(不显示) |
可以发现拥有者有s(setuid)特殊权限,可执行的文件搭配这个权限,可以得到特权,任意存取该文件的所有者能使用的全部系统资源,我们尝试运行它,发现这个文件根据提供的ID值输出以该数字为编号的bug报告
使用strings命令看这个命令是怎么运行的
- bugtracker调用系统中的cat命令输出了位于/root/reports/目录下的bug报告,robert用户本应无权访问/root目录,而bugtracker设置了setuid后就拥有了/root目录的访问,就拥有了root权限
- 且cat命令是使用绝对路径而不是相对路径来调用的,即在当前用户的环境变量指定的路径中搜寻cat命令,可以考虑创建一个恶意的cat命令,并修改当前用户环境变量,将权限提升为root
1 | export PATH=/tmp:$PATH //将/tmp目录设置为环境变量 |
提权成功
然后我们可以找到**/root目录下的root.txt拿到root** flag(此时cat命令已被替换,无法读取文件,所以使用more命令)
答案
- proxy
- /cdn-cgi/login
- cookie
- 34322
- /uploads
- db.php
- find
- root
- Set owner User ID
- cat
- f2c74ee8db7983851ab2a96a44eb7981
- af13b0bee69f8a877c3faf667f7beacf
参考文章
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Crzliang!
评论