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来成功写入。
➡️

继续阅读