这个漏洞也是在NiFi上发现的,关于NiFi,上篇博客为大家简要介绍过,有兴趣的读者可以回顾上一篇博客。
靶机要求
Apache NiFi 1.21.0(及其以下版本)
Java 17
序列化和反序列化
为了说明这个漏洞,首先介绍一下序列化和反序列化。
序列化是指将结构化的数据(例如对象)转化成一个字符串。转化过程中,不会造成数据信息部分丢失。
反序列化则为反向操作,将已经进行过序列化之后的数据还原回原本的结构化数据。正是序列化中需要保证转化之后的数据信息不会丢失,才能在反序列化之后成功转化为原来的数据。
POC
具体步骤参考https://github.com/mbadanoiu/CVE-2023-34212/blob/main/Apache%20NiFi%20-%20CVE-2023-34212.pdf
攻击的代码已经有大佬做成工具了,直接用就好。原理的话我觉得应该是通过写好的工具将我们要运行的代码序列化(可以不必含对象之类的数据,只是为了绕过检测机制),上传到靶机后反序列化运行,就不多说了。