赏金猎人捡漏:公网一个/heapdump,数据库密码Redis密钥全裸奔"

admin 2026-11-04 00:06:30 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

赏金猎人捡漏:公网一个 /heapdump,数据库密码 Redis 密钥全裸奔

原创

升斗安全XiuXiu
升斗安全XiuXiu

升斗安全

2026年11月3日 18:38
广东

去阅读

【文章说明】

  • 目的:本文内容仅为网络安全技术研究与教育目的而创作。
  • 红线:严禁将本文知识用于任何未授权的非法活动。使用者必须遵守《网络安全法》等相关法律。
  • 责任:任何对本文技术的滥用所引发的后果自负,与本公众号及作者无关。
  • 免责:内容仅供参考,作者不对其准确性、完整性作任何担保。

阅读即代表您同意以上条款。

【内容概述】
一篇红蓝双视角的实战短文。本文从\"一个 40MB 堆转储里躺着数据库密码、Redis 密码、对象存储 AccessKey 和测试账号明文\"的真实场景切入,讲清 Spring Boot Actuator 暴露 /heapdump 后为何能裸奔凭据:堆转储不打码、jasypt 配置加密在启动时就已解密成明文、连接池长期持有密码清不掉。附 strings 粗筛和 MAT 精查的自查手法,以及按性价比排序的五条加固项。重事实、讲人话,红队看\"捡漏面\",蓝队看\"封堵面\"。


干这行久了,见过的\"没用任何漏洞就丢凭据\"的案例,比正经 RCE 还多。

前两天看到一个真实情况:一个 40MB 的堆转储文件,里面安安静静躺着数据库密码、Redis 密码、对象存储的 AccessKey,还有一个测试账号的明文。整个过程没用到半个漏洞利用技巧,完全靠有人把 Spring Boot 的 actuator 暴露在了公网。

堆转储不是日志,它是程序运行时的完整记忆。记忆里一定有密码,否则程序连不上数据库。这篇文章从红蓝两边讲清楚:hunters 怎么用它做授权范围内的自查捡漏,defenders 怎么把这道门焊死。

底线先撂这儿:下面这些只用于你拿到授权的自有资产自查和防护加固。拿去扫别人没授权的系统,那是另一回事,咱不干那活。

一、暴露长什么样

访问 /actuator,如果返回一段带 \_links 的 JSON,说明端点清单被公开了。里面高危的三个:env(配置项)、heapdump(堆转储)、threaddump(线程栈)。

env 更直接,但被限制得狠,Spring Boot 2.x 之后敏感字段默认打码成星号,你看到的 password 是 \\\\\\,挖不出东西。heapdump 相反,它不打码,只是把内存原样倒出来。threaddump 能看到线程栈里的参数,价值低一些。

所以 hunter 扫目标,看到 /actuator 能列端点,第一时间就奔 heapdump 去,这是整张暴露清单里最肥的那块肉。

二、堆转储到底是什么

一句话:JVM 在某一刻把所有存活对象序列化成一个文件。字符串常量、连接池配置、Spring 的 Environment、每一个被 new 出来的对象,全在里面。

内存里有什么,文件里就有什么。而内存里一定有密码——这是数据源连接池能工作的前提,不是谁的疏忽。你想,DataSource 不拿着明文密码,它怎么连数据库?所以\"内存里没密码\"这个假设本身就不成立,堆转储天然就是个凭据保险箱。

三、为什么你上了 jasypt 也救不了

很多团队觉得,配置加了 jasypt 这类加密就安全了。错,解密发生在启动时:密文进,明文出,明文被直接塞进 DataSource 的 password 字段。堆里躺的是明文,加密从那一刻起就失效了。

还有人把密码存成 char[]、用完就清空,理论上是防内存 dump 被翻。但这招对连接池无效——连接池会长期持有密码,根本清不掉。你清了一个临时变量,池子里的那份还在。

一句话点破:配置加密防的是\"配置文件被拿走\",不是\"内存被拿走\"。这两件事的风险模型完全不同。前者是静态文件泄露,后者是运行时内存泄露,你拿对付前者的手段去防后者,等于拿雨伞防火。

四、从里面能捞出什么(自查视角)

工具向的做法是用 MAT(Eclipse Memory Analyzer)打开,写 OQL 查所有 java.lang.String,正则过滤 password、secret、accessKey、jdbc,开源工具能一次性把数据源、Redis、邮箱、Shiro key 几类提出来。

自查时先用系统自带工具粗筛,成本最低:

strings heapdump.bin | grep -iE ”password|passwd|secret|accessKey|jdbc:” | sort -u | head -50strings heapdump.bin | grep -oE ”jdbc:[a-z]+://[^\\”' ]+” | sort -u

两个实操细节:strings 对 HPROF 有效但不精确,只能定性;真要定量得上 MAT 的 OQL。另外大堆要调 -Xmx,4GB 的转储打开能卡十分钟,别在笔记本上硬扛。

五、防守:五条按性价比排序

  1. 关端点。management.endpoints.web.exposure.include=health,info,这一条能消灭绝大部分暴露。默认全开的时代早过去了,别懒。
  2. 改监听地址。management.server.address=127.0.0.1,让管理端口不跟业务端口共享,外网根本摸不到。
  3. 加认证。/actuator/** 全部纳入 Spring Security,别指望\"URL 猜不到\"当防线。
  4. 网关兜底。 反向代理层 deny /actuator,内部服务忘了配也不至于直接暴露到公网。
  5. 改凭据模型。 密码走 Vault 或 KMS 短期令牌,即使泄露也只是几个小时有效期。这条最贵,但只有它能把\"泄露即失守\"降级成\"泄露即过期\"。

再加一个动作:把 /actuator 加进外网资产季度扫描清单。这类暴露不是一次配置失误,是每次上线都可能重新带回来的默认值。

套路都是一线踩出来的。防御那章能直接打印当巡检项用。

底线再念一遍:只在明确授权范围内做这些自查。本文红蓝双视角,怎么捡漏、怎么封堵、怎么不被打。碰别人没授权的系统,咱不干那活,也劝你别干。

如果这篇把一个 /heapdump 从\"暴露\"到\"裸奔凭据\"再到\"焊死\"的全链路给你讲明白了

👍点个赞,让更多兄弟别把 actuator 裸奔在公网;

💬关注我,后面接着扒那些\"配置对了却还是漏\"的坑;

🔁顺手转发给还在拿 jasypt 当万能药的队友;

📣推荐给做防守的兄弟,这五条 checklist 贴工位上,比事后救火强。

守住边界,保持敏锐。

    Mac软件管理新三件套:DeepSeek+LaunchOS+Mole" 网络安全文章

    Mac软件管理新三件套:DeepSeek+LaunchOS+Mole"

    本文为数码荔枝公众号推广文章,推荐Mac软件管理新方案:用DeepSeek等AI推荐软件并获取官方下载地址,LaunchOS用于恢复macOS26启动台及彻底卸载清理软件,Mole提供缓存清理、应用管理、系统优化、磁盘分析和实时监控五大功能并新增AI工具清理维护。文章含双11促销购买信息,属商业软文。
    赏金猎人捡漏:公网一个/heapdump,数据库密码Redis密钥全裸奔" 网络安全文章

    赏金猎人捡漏:公网一个/heapdump,数据库密码Redis密钥全裸奔"

    本文从红蓝双视角分析SpringBootActuator暴露/heapdump导致数据库密码、Redis密钥等凭据泄露的实战案例。指出堆转储天然含明文凭据,jasypt加密无法防内存泄露。提供strings粗筛与MAT精查的自查手法,并按性价比给出关闭端点、限制监听地址、加认证、网关兜底、改凭据模型五条加固建议。强调仅限授权范围内自查。
    活动回顾|2026香港RWA与稳定币支付机构闭门峰会圆满举行" 网络安全文章

    活动回顾|2026香港RWA与稳定币支付机构闭门峰会圆满举行"

    2026年11月2日香港金融科技周期间,慢雾与君合律所联合举办RWA与稳定币支付机构闭门峰会,聚焦RWA发行流通、稳定币支付、机构合规及链上安全等议题。Keywolf分享AI时代安全防护与反洗钱筛查要点,强调零信任机制与灰犀牛风险;JacquelineQiao详解香港虚拟资产牌照申请合规要点。三场圆桌分别探讨传统资产代币化、跨境支付业务拓展及链上安全攻防,为机构提供业务落地与风险管理参考。
    智能体对模型对齐失效的干预与有效性评估" 网络安全文章

    智能体对模型对齐失效的干预与有效性评估"

    本文介绍Anthropic研究院关于自动化研究者缓解对齐失效的研究。智能体驱动的自动化对齐研究者能可靠改进十类对齐失效,在保留基准和更大模型上增益保持,通常一个工作日内超过人类研究者想法。研究指出自动化对齐后训练近期可能实用,但仍需提升检测细微对齐失效能力。
    评论:0   参与:  0