↑ 点击上方蓝色字关注我们
Fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。由于是目前解析JSON最快的开源库,因此应用非常广泛。
Fastjson采取黑名单的机制修补反序列化漏洞,并在近日更新了黑名单,在安全研究员的发掘下,找到了一种新的利用方式,可以由此绕过黑名单执行任意代码。由于该利用条件相对苛刻,危害相对有限,但仍需做好防御工作。
预警报告信息漏洞名称 | FastJson < 1.2.61反序列化漏洞 |
CVE编号 | 暂无 |
漏洞影响厂商 | 阿里巴巴 |
漏洞影响产品版本(范围) |
|
漏洞危害等级 | 中危 |
厂商是否已发布漏洞补丁 | 否 |
漏洞补丁更新地址 | https://github.com/alibaba/fastjson |
安全狗总预警期数 | 103 |
安全狗预警版本 | V1.0 |
安全狗发布预警日期 | 2019年9月23日 |
安全狗更新预警日期 | 2019年9月23日 |
发布者 | 安全狗海青实验室 |
环境准备:JDK 8U20
所需jar包:fastjson-1.2.61.jar
Commons-configuration2-2.0.jar
Commons-lang3-3.3.2jar
Commons-logging-1.2.jar
POC代码如下:
1)在CMD编译Exploit.java
javac Exploit.java
运行结果:生成Exploit.class文件
2)在CMD编译rmiServer.java
javac rmiServer.java
运行结果:生成rmiServer.class文件
3)在CMD编译poc.java
javac -cp fastjson-1.2.61.jar poc.java
运行结果:生成poc.class文件
4)在CMD运行RMI Server
java rmiServer
5)在CMD运行Python的SimpleHTTPServer
python -m SimpleHTTPServer
6)在CMD运行poc
java -classpath ".;fastjson-1.2.61.jar;commons-configuration2-2.0.jar;commons-lang3-3.3.2.jar;commons-logging-1.2.jar" poc
命令执行效果如下:
可以看到计算机成功弹出。
处置方案1、在不影响业务的情况下,关闭AutoType。由于Fastjson的AutoType默认是关闭,相关用户自查是否使用ParseConfig.getGlobalInstance().setAutoTypeSupport(true);开启了AutoType。
2、WAF拦截Json请求中的多种编码形式的‘@type’,‘\u0040type’等字样;
3、升级JDK版本到8u121,7u13,6u141以上。