记一次攻防演练从任意文件读取0day到接管云

记一次攻防演练从任意文件读取0day到接管云

Administrator 12 2024-10-10

任意文件读取

首先进行资产搜集,发现其子域名存在一个系统图片-xrnb.png

然后使用findsometing,发现有大量接口,目测是个api接口图片-xopm.png

随便寻找一个接口进行测试,图片-wjxg.png

get参数添加id后发现很明显存在未授权访问,然后查看其他接口图片-mhzh.png

发现其存在apis/xxxxxxx/download?filePath接口,于是便可以尝试任意文件读取,发现成功下载etc/passwd文件图片-ucgg.png

接下来就想着去读取ssh私钥,但是未能成功图片-zsnk.png

由于是攻防演练,任意文件下载是不得分的,于是继续想着如何进行渗透,最好获取主机权限

任意文件下载ssh私钥失败后,继续进行信息搜集,寻找有用信息。

返回之前的未授权接口,发现了一个很好的接口apis/xxxxx/env图片-lxjs.png

发现这个是一个spring boot的网站并且存在ak/sk的信息图片-acvz.png

获取ak/sk

众所周知,spring boot是以jar包的形式运行,ak/sk会存放在spring boot的application.properties 或 application.yml配置文件中

那么思路就是去获取application.properties 或 application.yml配置文件了

而spring boot的配置文件,在运行阶段,就早已打成jar包。

所以我们要获取application.properties 或 application.yml配置文件的话,就需要我们去获取到spring boot的jar包的源码,因此就需要确定jar包的路径

结合之前的任意文件下载,下载proc/self/cmdline文件,获取当前的进程图片-eisp.png

发现其运行了app.jar包,也就是网站的源码。然后猜测在当前路径,但是发现没有下载成功

然后往前一个目录下载app.jar

查看jar包

找到ak/sk信息图片-hysh.png

然后连接上云,拿下28个存储桶图片-qawo.png
然后获得大量个人敏感信息

后续使用想着获得权限,但是由于权限不够,没能直接接管图片-rmja.png

之后发现,还存在腾讯云ak/sk,然后直接可以接管腾讯云服务器图片-yerx.png

成功接管图片-bmty.png

后期进行代码审计图片-safl.png

/xxxxx/download存在任意文件下载图片-gljk.png

这里没有进行过滤,可以直接进行拼接,然后读取/etc/passwd,并且看到@ApiOperation

@ApiOperation 是一个用于描述 API 操作的注解,所以通过代码可以知道这个代码实际上定义了一个api接口

然后通过这个api接口可以未授权访问,进行任意文件读取的操作,也是漏洞产生的原因