Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Spring Boot

基于 IDEA 创建 Spring Boot 应用

https://www.jetbrains.com/zh-cn/help/idea/your-first-spring-application.html

Spring Boot Actuator

Spring Boot Actuator 是 Spring Boot 官方提供的一个自动化监控模块,为你的 Spring Boot 应用添加一组现成的端点(Endpoints),用来监控、管理和维护正在运行的应用。

Maven 添加依赖

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

application.properties

management.endpoint.heapdump.access=unrestricted
management.endpoints.web.exposure.include=*

Actuator 提供一组自动配置的 REST 端点(endpoints),包括但不限于:

  • /actuator/health:应用健康状况(可扩展检查数据库、Redis、Disk 等)
  • /actuator/info:应用信息(可配置 version、描述等)
  • /actuator/metrics:关键性能指标暴露(如 JVM、CPU、内存、请求数等)
  • /actuator/env:环境变量和配置属性
  • /actuator/beans:Spring 容器管理的 Bean 列表
  • /actuator/loggers:所有日志级别动态观察和调整
  • /actuator/threaddump:线程信息
  • /actuator/heapdump:JVM 堆转储
  • /actuator/mappings:Controller 路径映射详情

其中对寻找漏洞比较重要接口的有:

  • /env/actuator/env

    GET 请求 /env 会直接泄露环境变量、内网地址、配置中的用户名等信息;当程序员的属性名命名不规范,例如 password 写成 psasword、pwd 时,会泄露密码明文;

    同时有一定概率可以通过 POST 请求 /env 接口设置一些属性,间接触发相关 RCE 漏洞;同时有概率获得星号遮掩的密码、密钥等重要隐私信息的明文。

  • /refresh/actuator/refresh

    POST 请求 /env 接口设置属性后,可同时配合 POST 请求 /refresh 接口刷新属性变量来触发相关 RCE 漏洞。

  • /restart/actuator/restart

    暴露出此接口的情况较少;可以配合 POST 请求 /env 接口设置属性后,再 POST 请求 /restart 接口重启应用来触发相关 RCE 漏洞。

  • /jolokia/actuator/jolokia

    可以通过 /jolokia/list 接口寻找可以利用的 MBean,间接触发相关 RCE 漏洞、获得星号遮掩的重要隐私信息的明文等。

  • /trace/actuator/httptrace

    一些 http 请求包访问跟踪信息,有可能在其中发现内网应用系统的一些请求信息详情;以及有效用户或管理员的 cookie、jwt token 等信息。

heapdump 利用

java -jar heapdump_tool.jar heapdump

https://github.com/wyzxxz/heapdump_tool https://github.com/whwlsfb/JDumpSpider

Spring4Shell(CVE-2022-22965)

Spring4Shell 是一种影响运行在 JDK 9+环境中、以 WAR 包在 Tomcat 下部署的 Spring 框架远程代码执行漏洞。

https://www.hackthebox.com/blog/spring4shell-explained-cve-2022-22965 https://medium.com/@vulnmachines/spring4shell-write-up-vulnmachines-31d825feeb34

参考资料

https://github.com/LandGrey/SpringBootVulExploit/tree/master https://github.com/wyzxxz/heapdump_tool