Jackson反序列化漏洞(CVE-2020-36188)从通告到POC

Jackson反序列化漏洞(CVE-2020-36188)从通告到POC
最新回答
岁月并非如歌

2024-01-17 07:03:45

分析了Jackson反序列化漏洞(CVE-2020-36188),从漏洞通告到构建POC。Jackson作为强大的JSON库,广泛应用于Spring生态系统中。然而,其也伴随反序列化漏洞的频繁发现,导致了防护策略的升级。通过升级到2.10.x版本,Jackson引入白名单机制来防御恶意类。

CVE-2020-36188漏洞利用了Jackson的全局默认类型转换功能,允许绕过序列化规则。为了分析和构建POC,首先介绍了如何搭建测试环境,如Ldap环境,并添加依赖。选择Jackson 2.9.9版本以及对应的第三方库依赖。

构建POC的步骤包括:
1. 识别受影响的组件和第三方库。
2. 搜索完整类路径。
3. 添加相关依赖。
4. 参考相似漏洞(如CVE-2020-35490)的POC代码。
5. 替换组件路径并设置属性。
6. 搜索触发JNDI注入的关键代码。
7. 设置payload中属性,利用反射在序列化过程中触发JNDI注入。

完整POC代码在序列化对象时设置属性jndiLocation,利用lookupDataSource函数触发JNDI注入,并通过debug工具验证执行流程。这一过程展示了如何从漏洞通告出发,独立构建有效POC。

总结,通过细致的分析与实践,可以有效地应对Jackson反序列化漏洞,构建针对特定漏洞的POC,从而提升对这类安全问题的应对能力。