13. darkhole_1 靶机
先验证逻辑错误,再验证输入错误,所以就走逻辑。
Web
注册处发现可以跑用户名,用户明存在与否响应不同。若存在,则提示已经存在,若不存在,则提示注册成功。
基于此,使用 burp intruder 尝试遍历用户名。
最终跑出来以下用户名
注册一个用户,进行登录,登录到后台,发现修改密码处,有 id 值。
对 id 进行遍历,发现无法越权访问,便尝试修改密码处,越权修改密码。
修改 id 为 1 用户的密码,猜测用户名为 admin。成功猜中,,没猜中也可以再次遍历即可。以 admin 用户登陆后,发现上传文件处。
经测试,发现通过 phtml 即可绕过上传。后续看了看 upload.php 发现只是过滤了两个关键字。
成功拿到 webshell
提权
获取到 webshell 后进行反弹。
进行漫步,发现 john 用户目录下存在 suid 权限的文件,并且有运行权限。
尝试运行,发现输出 id 命令结果。
利用环境变量劫持 id 命令。
成功化身为 john
john 目录下的 password 提醒了密码。
利用密码查看 sudo -l 内容,发现运行 sudo 运行 file.py 脚本。
有权限更改 file.py 内容,那就更改执行 bash。
执行获取 root