某处Fastjson漏洞挖掘

Fastjson

简介

Fastjson是阿里的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。

Fastjson提供了autotype功能,可通过修改@type的值,反序列化为指定类型,而fastjson在反序列化中或设置和获取类中属性,如果类中存在恶意方法则会导致代码执行等。

 

注入方法

JNDI Reference 配合 RMI

JNDI Reference 配合 LDAP

 一般见到json格式的数据,有一定可能性是fastjson

在测试中某医院登陆处是使用fastjson进行验证

可构造payload

 

 

升级方案

升级到最新版本1.2.69或者更新的1.2.70版本。

1.2.69https://github.com/alibaba/fastjson/releases/tag/1.2.69

1.2.70https://github.com/alibaba/fastjson/releases/tag/1.2.70

如果遇到兼容问题,原地升级sec10版本。

1.1.15~1.1.31->1.1.31.sec10

1.1.32~1.1.33->1.1.33.sec10

1.1.34->1.1.34.sec10

1.1.35~1.1.46->1.1.46.sec10

1.2.0~1.2.2->1.2.2.sec10因为1.2.3之后的版本Map是没有排序输出的,如果不关注这个兼容问题,升级到1.2.70

1.2.3~1.2.7->1.2.7.sec10因为1.2.7使用最多特别提供,也可以直接使用1.2.8.sec10

1.2.8->1.2.8.sec10

1.2.9~1.2.29->1.2.29.sec10

1.2.30~1.2.48->1.2.48.sec10

1.2.49~1.2.68->1.2.691.2.70中间有很多sec10小版本,建议直接升级到1.2.69或1.2.70,如果遇到兼容再考虑sec10版本

如果还遇到其他兼容问题,这里有更多的sec10版本https://repo1.maven.org/maven2/com/alibaba/fastjson/

fastjson加固

fastjson在1.2.68及之后的版本中引入了safeMode,配置safeMode后,无论白名单和黑名单,都不支持autoType,可一定程度上缓解反序列化Gadgets类变种攻击(关闭autoType注意评估对业务的影响)

开启方法参考:

https://github.com/alibaba/fastjson/wiki/fastjson_safemode

posted @ 2021-08-10 10:34  ch0bits  阅读(682)  评论(0编辑  收藏  举报