Fastjson反序列化Groovy+Commons-io文件写入
💡
原文中文,约10200字,阅读约需25分钟。
📝
内容提要
本文分析了fastjson在1.2.69至1.2.80版本中的文件写入漏洞,结合Groovy和Commons-io库,探讨了在Windows和Linux环境下的利用方法。作者优化了利用链,指出不同版本和系统对成功率的影响,并提供了多种POC示例,最后讨论了后端指定类的处理方法。
🎯
关键要点
- 本文分析了fastjson在1.2.69至1.2.80版本中的文件写入漏洞。
- 结合Groovy和Commons-io库,探讨了在Windows和Linux环境下的利用方法。
- 作者优化了利用链,指出不同版本和系统对成功率的影响。
- 提供了多种POC示例,展示如何在不同环境下进行文件写入。
- Windows环境下可以写入二进制文件,而Linux环境下只能写入文本文件。
- 利用链子分版本,Commons-io的不同版本参数名称不一致可能导致利用失败。
- 在反序列化时,fastjson选择构造函数的逻辑影响成功率。
- 在实战环境中,后端指定类可能导致POC无法成功写入。
- 针对后端指定类的情况,可以通过将$.a换为$.null来成功写入。
➡️