Fastjson caucho-quercus远程代码执行漏洞 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

Fastjson caucho-quercus远程代码执行漏洞

千里目安全实验室 漏洞 2020-03-23 12:27:28
987476
收藏

导语:Fastjson是一个Java语言编写的高性能功能完善的JSON库。Fastjson存在远程代码执行漏洞,远程攻击者可以通过构造的攻击代码触发远程代码执行漏洞,最终可以获取到服务器的控制权限。

Fastjson组件介绍

Fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。Fastjson接口简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。

漏洞描述

Fastjson远程代码执行漏洞是由于使用com.caucho.config.types.ResourceRef类,绕过了Fastjson1.2.66及以前版本的黑名单而导致。当服务端加载了存在受漏洞影响的resin依赖,并且开启了Fastjson的autotype时,远程攻击者可以通过构造的攻击代码触发远程代码执行漏洞,最终可以获取到服务器的控制权限。

漏洞分析

以Fastjson1.2.66 + resin-4.0.63.jar作为漏洞环境分析。传入构造好的payload,经过JSON类中的parse方法的解析入口。

图片1.png

在DefaultJSONParser类中进行格式解析,利用特殊符号作为标志符进行数据提取。

图片2.png

当获取到@type传入的类名后,会通过checkAutoType方法检查@type传入的类是否在黑名单中。

图片3.png 

传入的类会经过hash转换,生成hash值

图片4.png

生成的hash值会与Fastjson设置的黑名单中的hash进行对比,如果匹配成功,直接抛出异常退出程序。

图片5.png 

通过checkAutoType检查之后,会在getClassLoader()方法中获取本地类库资源,并从中加载目标类所在的类库。

图片6.png 

图片7.png

 继续跟进代码,通过调用TypeUtils.loadClass()方法为clazz赋值,最终返回clazz。

图片8.png 

进入map.put()方法,经过反序列化获取传入的类中属性和方法,通过JavaBean,直接为属性赋值。

图片9.png

图片10.png

图片11.png

最终在getValue()方法中调用Jndi.lookup()方法,在lookup()方法中会实例化InitialContext,并调用lookup()方法进行寻址,加载传入的链接上的恶意文件,在服务器上执行文件中的命令。

图片12.png 

图片13.png 

至此漏洞利用过程基本完成。

漏洞复现

搭建Fastjson1.2.66 + resin-4.0.63.jar漏洞环境,传入精心构造的json数据,让目标服务器加载远程主机上的恶意文件,从而在目标主机上执行任意代码。效果如图:

图片14.png 

影响范围

目前受影响的Fastjson版本:

Fastjson < 1.2.67

修复建议

1. Alibaba发布的最新版本Fastjson1.2.67已经防御此漏洞,请受漏洞影响的用户下载最新版本,下载链接:https://github.com/alibaba/fastjson

2. Fastjson默认关闭autotype,如果项目中不需要该功能,可以删除以下代码:

ParserConfig.getGlobalInstance().setAutoTypeSupport(true);

时间轴

2020/3/18  Fastxml Jackson-databind发布的补丁中新增一个黑名单类。

2020/3/21  深信服千里目安全实验室成功复现漏洞并发布漏洞分析文章。

参考链接

https://github.com/FasterXML/jackson-databind/commit/1645efbd392989cf015f459a91c999e59c921b15#diff-727a6e8db3603b95f185697108af6c48L156

https://github.com/alibaba/fastjson

如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务