当前位置: 首页 > news >正文

从spring boot泄露到接管云服务器平台

0x1前言

在打野的时候意外发现了一个站点存在spring boot信息泄露,之前就有看到一些文章可以直接rce啥的,今天刚好试试。通过敏感信息发现存在accesskey泄露,就想直接通过解密,获取敏感信息,接管云平台。

首先说下这个漏洞的产生。主要是因为程序员开发时没有意识到暴露路由可能会造成安全风险,或者没有按照标准流程开发,忘记上线时需要修改/切换生产环境的配置。我们是可以通过访问/v2/api-docs和/swagger-ui.html去验证是否存在的。

0x2漏洞利用

本次我们想获取/actuator/env里面的明文信息,那么有三种方法可以获取。

第一种:通过/jolokia接口获取明文

利用条件:

  1. 1. 目标网站存在 /jolokia 或 /actuator/jolokia 接口

  2. 2. 目标使用了 jolokia-core 依赖(版本要求暂未知)

第二种:通过/env接口发送明文到你vps上

  1. 1. 可以 GET 请求目标网站的 /env

  2. 2. 可以 POST 请求目标网站的 /env

  3. 3. 可以 POST 请求目标网站的 /refresh 接口刷新配置(存在 spring-boot-starter-actuator依赖)

  4. 4. 目标使用了 spring-cloud-starter-netflix-eureka-client 依赖

  5. 5. 目标可以请求攻击者的服务器(请求可出外网)

第三种:和第二种差不多,只是方式不一样

  1. 1. 通过 POST /env 设置属性触发目标对外网指定地址发起任意 http 请求

  2. 2. 目标可以请求攻击者的服务器(请求可出外网)

第四种:通过/heapdump下载到本地解密

1、可正常 GET 请求目标 /heapdump 或 /actuator/heapdump 接口

而我这边采用第四种方法去获取。先下载一个heapdump文件。

其实我看了好多篇文章,使用jvisualvm.exe尝试去解开heapdump,但是都无法正常获取,可能也是我操作有问题,后续使用Eclipse Memory Analyzer,完美解决。

使用Eclipse Memory Analyzer去查询对应的字段:

  select * from java.util.LinkedHashMap $Entry x WHERE (toString(x.key).contains("accessKeySecret"))

注意:这边默认是不支持模糊查询的,必须字段完全匹配才能查询到字段。如仅输入accessKey是查询不到accessKeySecret的字段值的。

0x3接管云平台

成功获取accessKeySecret和accessKeyId后,接下来我们就可以使用cf进行接管云平台了。

链接:https://github.com/teamssix/cf

使用cf config配置accessKeySecret和accessKeyId:

配置完直接一键接管:cf alibaba console

这边会生成地址和账号密码,拿去登录即可获取云平台账号权限:

这边可以看到,他是有5台服务器实例的,直接获取5台服务器权限。

0x4结尾

其实我之前不只尝试了第四种,而是被迫使用第四种方式获取明文信息。尝试前面三种,都是以500报错结束,具体也不知道是什么原因,有大佬知道的可以教一下。

本文其实只是想让大家了解一下一些漏洞和一些信息泄露的用法,其实很多东西都是没有含金量的,说破不值钱。自己最近接触了很多刚开始学习安全的人,都不知道从何入手。对于刚刚开始学习的人,个人建议可以多看看漏洞原理和别人的文章,从中吸取经验和渗透思路,很多实力其实都是经验累积出来的。可能有时候看到别人文章,会觉得就是一帆风顺的,很简单,但是其实很多人只是没把自己走了多少弯路,踩了多少坑说出来罢了。本人也只是刚开始摸索的小白,本身学习是学无止境的,纯靠兴趣去驱动。

本文参考:https://github.com/LandGrey/SpringBootVulExploit

http://www.lryc.cn/news/59133.html

相关文章:

  • 大数据技术——spark集群搭建
  • 嵌入式学习笔记汇总
  • Python 全栈系列220 Tornado的服务搭建
  • ESXi安装CentOS
  • WebTest搭建
  • 什么性格的人适合报考机械类专业?(高考志愿填报选专业)
  • 进程概念详解
  • C语言基础——指针
  • 反序列化渗透与攻防(二)之Java反序列化漏洞
  • 优先级队列的模拟实现(仿函数)
  • Python pandas和numpy用法参考(转)
  • mysql数据库的在线数据备份与数据恢复
  • Vue3自定义指令之前端水印功能实现
  • 文章生成器写出来的原创文章
  • 2023年全国最新高校辅导员精选真题及答案49
  • 【STL十】关联容器——set容器、multiset容器
  • 什么是Node.js
  • 比GPT-4 Office还炸裂,阿里版GPT全家桶来袭
  • mysql 建表约束
  • 在Vue项目中使用tinymce富文本编辑器
  • GPT-4 和ChatGPT API的定价分析
  • 基于html+css的盒子展示2
  • 【持续更新篇】SLAM视觉特征点汇总+ORB特征点+VINS前端
  • 【C语言】初阶指针(指针及其类型以及野指针)
  • UDS统一诊断服务【六】访问时序参数0X83服务
  • Linux应用编程(文件属性与目录)
  • 第十四届蓝桥杯嵌入式详解
  • 新建论文三线表模板,一键格式刷
  • 攻防世界-web2(逆向加密算法)
  • C语言学习1--------Visual Studio集成开发环境的搭建