漏洞简介
Apache kafka组件反序列化漏洞是FileOffsetBackingStore类在反序列化本地文件时引发的,实际场景中用到的并不多,简单复现下做个记录。
漏洞复现
测试源码如下:
1 | import org.apache.commons.io.FileUtils; |
pom.xml
1 | <?xml version="1.0" encoding="UTF-8"?> |
执行程序会在本地新建一个名为”vul”的文件,证明漏洞存在。
漏洞分析
上面验证代码逻辑简单,写的比较清晰,不具体分析了。可以看看FileOffsetBackingStore类的实现,configure
方法获取"offset.storage.file.filename"
指定的值实例化一个文件对象,start
方法调用会调用load
方法,而load
方法中反序列化之前实例化的文件对象,触发反序列漏洞。
1 | public class FileOffsetBackingStore extends MemoryOffsetBackingStore { |