国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Web網(wǎng)絡(luò)安全-----Log4j高危漏洞原理及修復(fù)

這篇具有很好參考價(jià)值的文章主要介紹了Web網(wǎng)絡(luò)安全-----Log4j高危漏洞原理及修復(fù)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

系列文章目錄

Web網(wǎng)絡(luò)安全-----紅藍(lán)攻防之信息收集



什么是Log4j?

Log4j 即 log for java(java的日志) ,是Apache的一個(gè)開源項(xiàng)目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺(tái)、文件、GUI組件,甚至是套接口服務(wù)器、NT的事件記錄器、UNIX Syslog守護(hù)進(jìn)程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級(jí)別,我們能夠更加細(xì)致地控制日志的生成過程。最令人感興趣的就是,這些可以通過一個(gè)配置文件來靈活地進(jìn)行配置,而不需要修改應(yīng)用的代碼。


一、Log4j漏洞

log4j漏洞,web安全,log4j,安全

2021年12月8號(hào)爆出的log4j2的遠(yuǎn)程代碼執(zhí)行漏洞【cve-2021-44228】被稱作“史詩級(jí)核彈漏洞”,其具有以下特點(diǎn):

觸發(fā)方式 遠(yuǎn)程
用戶認(rèn)證 不需要用戶認(rèn)證
配置方式 默認(rèn)
影響版本 Apache Log4j 2.0-alpha1 到 2.14.1(包括這些版本) Apache Log4j 1.2.19 到 1.2.20(包括這些版本)
利用難度 極低,無需授權(quán)即可遠(yuǎn)程代碼執(zhí)行
威脅等級(jí) 嚴(yán)重,能造成RCE

(該漏洞的范圍可能會(huì)隨著時(shí)間的推移而有所變化)
在了解了Log4j的基本特點(diǎn)后,就知道最高級(jí)的漏洞,往往采取最樸素的“烹飪方式”,簡單、危害大、利于操作。

二、漏洞產(chǎn)生原因

在Log4j2中提供了Lookups機(jī)制,Lookups提供了一種在Log4j配置文件任意位置添加值的方法;而Lookups機(jī)制中,存在JNDI,在Log4j日志輸出時(shí),未對字符合法性進(jìn)行嚴(yán)格的限制,造成JNDI協(xié)議加載的遠(yuǎn)程惡意腳本被執(zhí)行,從而造成RCE。
log4j漏洞,web安全,log4j,安全

下面將詳細(xì)介紹什么是Lookups和JNDI

1.什么是Lookups機(jī)制

“ Lookups provide a way to add values to the Log4j configuration at arbitrary places. They are a particular type of Plugin that implements the StrLookup interface. ”
以上內(nèi)容復(fù)制于log4j2的官方文檔lookup - Office Site。其清晰地說明了lookups的主要功能就是提供另外一種方式以添加某些特殊的值到日志中,以最大化松散耦合地提供可配置屬性供使用者以約定的格式進(jìn)行調(diào)用。(lookups是實(shí)現(xiàn)StrLookup接口的特定類型的插件)lookups給開發(fā)者提供了更加方便的后端開發(fā)過程中的調(diào)試效率

lookups可以通過 {$xx} 的方式來執(zhí)行一些命令和操作,log4j支持在日志中使用該表達(dá)式執(zhí)行命令。下面是log4j使用lookup的簡單示例,可以打印系統(tǒng)os信息。

public void test() {
        log.info("{$java:os}");
} 

這樣就能理解,為什么常見的Log4j漏洞的playload是以下格式的:

${jndi:ldap}
${jndi:ldaps}
${jndi:rmi}
${jndi:iiop}
${jndi:iiopname}
${jndi:corbaname}
${jndi:dns}
${jndi:nis}

觀察上面的palyload就能發(fā)現(xiàn),每個(gè)playload里面都有jndi,下面將介紹JNDI的作用

2.怎么利用JNDI進(jìn)行注入

JNDI簡介

JNDI(Java Naming and Directory Interface–Java)命名和目錄接口 是Java中為命名和目錄服務(wù)提供接口的API,通過名字可知道,JNDI主要由兩部分組成:Naming(命名)和Directory(目錄),其中Naming是指將對象通過唯一標(biāo)識(shí)符綁定到一個(gè)上下文Context,同時(shí)可通過唯一標(biāo)識(shí)符查找獲得對象,而Directory主要指將某一對象的屬性綁定到Directory的上下文DirContext中,同時(shí)可通過名字獲取對象的屬性同時(shí)操作屬性。
log4j漏洞,web安全,log4j,安全JNDI主要由JNDI API和JNDI SPI兩部分組成,Java應(yīng)用程序通過JNDI API訪問目錄服務(wù),而JNDI API會(huì)調(diào)用Naming Manager實(shí)例化JNDI SPI,然后通過JNDI SPI去操作命名或目錄服務(wù)其如LDAP, DNS,RMI等,JNDI內(nèi)部已實(shí)現(xiàn)了對LDAP,DNS, RMI等目錄服務(wù)器的操作API。

通過上面可以知道,JNDI可以實(shí)現(xiàn)對LADP、RMI等服務(wù)的操作,所以攻擊者只需要構(gòu)建一個(gè)LADP或RMI遠(yuǎn)程服務(wù)即可,讓遠(yuǎn)程服務(wù)器返回惡意class

LADP

什么是LDAP(Lightweight Directory Access Protocol):顧名思義,一個(gè)輕量級(jí)的目錄訪問協(xié)議,用來訪問目錄服務(wù)(Directory Service)。
那么LDAP協(xié)議作為一個(gè)訪問協(xié)議,它在技術(shù)架構(gòu)的表現(xiàn)上是一個(gè)CS架構(gòu)模式:以IDaaS為例,IDaaS產(chǎn)品要解決的三個(gè)問題,都是會(huì)作為LDAP Client去訪問LDAP Server(這里L(fēng)DAP Server和Directory Service等同了),來實(shí)現(xiàn)功能
log4j漏洞,web安全,log4j,安全

RMI

RMI(即Remote Method Invocation)是Java平臺(tái)一個(gè)分布式應(yīng)用程序的應(yīng)用編程接口(API),它是Java Remote Method Protocol(JRMP)的實(shí)現(xiàn),這個(gè)協(xié)議代表了Java語言特有的遠(yuǎn)程過程調(diào)用(RPC)系統(tǒng)。

RMI允許一個(gè)對象通過一個(gè)網(wǎng)絡(luò)在另外一個(gè)虛擬機(jī)上被調(diào)用,這些對象稱之為遠(yuǎn)程對象
log4j漏洞,web安全,log4j,安全
在了解了上面這些東西后,畫了一個(gè)圖幫助理解
攻擊者定義一個(gè)接口,在接口中定義數(shù)據(jù)庫操作等。
攻擊者攜帶lookup支持表達(dá)式進(jìn)行請求服務(wù)器。
服務(wù)器通過log4j打印出請求信息。
log4j打印完成后會(huì)執(zhí)行JNDI操作。
這樣就解釋了漏洞的產(chǎn)生,極其高危!

log4j漏洞,web安全,log4j,安全

三、Log4j漏洞修復(fù)

1.升級(jí)到受影響版本的修復(fù)版:
(1)對于Apache Log4j 2.x 用戶,建議升級(jí)到2.17.0版本以上。這些版本修復(fù)了漏洞,并包含其他安全增強(qiáng)措施。
(2)對于Apache Log4j 1.x 用戶,目前官方并未針對1.x版本提供官方修復(fù)版。建議升級(jí)到Log4j 2.x版本,或者考慮使用其他日志記錄庫。

2.阻止使用JNDI來加載遠(yuǎn)程資源:
如果您無法立即升級(jí)到修復(fù)版本,可以通過在Log4j配置中禁用使用JNDI來加載遠(yuǎn)程資源來減少風(fēng)險(xiǎn)??梢酝ㄟ^在log4j2.xml文件中將JndiLookup類從配置中移除或設(shè)置為安全的FallbackJndiLookup或DummyLookup來實(shí)現(xiàn)。

3.啟用安全策略:
為了進(jìn)一步減少潛在的風(fēng)險(xiǎn),應(yīng)該考慮啟用安全策略來限制代碼執(zhí)行??梢酝ㄟ^在log4j2.xml文件中添加安全策略配置來實(shí)現(xiàn)。

4.清除受影響系統(tǒng)的緩存:
Log4j有一個(gè)緩存機(jī)制,可以存儲(chǔ)已解析的XML配置。為了確保新的配置生效,您可能需要清除緩存??梢酝ㄟ^清除 Log4j 的上下文選擇器緩存來實(shí)現(xiàn)。

除了以上方法外,了解并關(guān)注官方發(fā)布的漏洞修復(fù)和更新是非常重要的,因?yàn)樵撀┒吹募?xì)節(jié)和修復(fù)程度可能會(huì)發(fā)生變化。推薦遵循安全最佳實(shí)踐,并隨時(shí)關(guān)注官方漏洞通告和安全更新。

總結(jié)

Log4j漏洞能造成RCE等危害,所謂是為所欲為,雖然現(xiàn)在大部分系統(tǒng)早已經(jīng)安裝補(bǔ)丁進(jìn)行修復(fù)升級(jí),但仍有部分老系統(tǒng)未進(jìn)行修復(fù),這是在安全測試中我們不可忽視的一個(gè)重大漏洞,任然需要對Log4j版本等進(jìn)行排查修復(fù)。

未經(jīng)授權(quán)請勿盜用,轉(zhuǎn)發(fā)請指明文章來源地址http://www.zghlxwxcb.cn/news/detail-693976.html

到了這里,關(guān)于Web網(wǎng)絡(luò)安全-----Log4j高危漏洞原理及修復(fù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • log4j JNDI注入漏洞

    目錄 log4j JNDI注入漏洞 一、LDAP介紹 二、JDBC介紹 三、JNDI介紹 四、JNDI命名引用 五、log4j JNDI注入漏洞 ?LDAP是一種協(xié)議,LDAP 的全稱是 Lightweight Directory Access Protocol,輕量目錄訪問協(xié)議。 ?JDBC是一種規(guī)范,JDBC的全稱是Java數(shù)據(jù)庫連接(Java Database connect),它是一套用于執(zhí)行SQL語句

    2024年02月01日
    瀏覽(28)
  • Log4j遠(yuǎn)程代碼執(zhí)行漏洞

    Log4j遠(yuǎn)程代碼執(zhí)行漏洞

    簡介 漏洞描述 Apache Log4j 是 Apache 的一個(gè)開源項(xiàng)目,Apache log4j-2 是 Log4j 的升級(jí),我們可以控制日志信息輸送的目的地為控制臺(tái)、文件、GUI組件等,通過定義每一條日志信息的級(jí)別,能夠更加細(xì)致地控制日志的生成過程。 Log4j-2中存在JNDI注入漏洞,當(dāng)程序?qū)⒂脩糨斎氲臄?shù)據(jù)日志

    2024年02月11日
    瀏覽(25)
  • log4j漏洞原理及攻擊流程

    log4j漏洞原理及攻擊流程

    log4j漏洞最早出現(xiàn)在2021年11月24日一位阿里安全團(tuán)隊(duì)的員工發(fā)現(xiàn)的,上報(bào)到Apache之后,12月10日凌晨才被公開。該漏洞威脅等級(jí)較高。基本比肩與阿里當(dāng)年的fastjson漏洞。 漏洞地址: Log4j是一種流行的Java日志記錄工具,其升級(jí)版本Log4j 2存在安全漏洞。這個(gè)漏洞是由Log4j 2的lookup功

    2024年02月16日
    瀏覽(26)
  • fastJson反序列化漏洞和log4j漏洞

    有 attach.class (編譯好的文件) 攻擊者建立rmi服務(wù)端,于rmi服務(wù)端建造一系列攻擊對象 ,假設(shè)遠(yuǎn)程地址為 http://abc,可url鏈接到惡意class-attach.class 若被攻擊者訪問到此服務(wù) rmi://abc/attach.class ,靜態(tài)代碼塊會(huì)優(yōu)先加載,無需構(gòu)造對象。 fastJson通過序列化漏洞 fastJson=1.2.47 (高版本添

    2024年02月16日
    瀏覽(24)
  • 【實(shí)戰(zhàn)】一次簡單的log4j漏洞測試

    【實(shí)戰(zhàn)】一次簡單的log4j漏洞測試

    更新時(shí)間:2021.12.19 參考文檔:https://www.yuque.com/u8021480/crow/dg9xax 在去年 log4j 漏洞剛爆發(fā)的時(shí)候,很多平臺(tái)都存在漏洞,當(dāng)時(shí)也在第一時(shí)間在有授權(quán)的情況下對某論壇進(jìn)行了滲透測試,結(jié)果發(fā)現(xiàn)存在漏洞,報(bào)告之后,漏洞也被很快修復(fù)。 本次對該滲透過程進(jìn)行一個(gè)簡單的記錄

    2023年04月26日
    瀏覽(59)
  • 深入解析著名的阿里云Log4j 漏洞

    幾乎每個(gè)系統(tǒng)都會(huì)使用日志框架,用于記錄日志信息,這些信息可以提供程序運(yùn)行的上下文,但是日志過多也會(huì)影響系統(tǒng)的性能,所以好的日志框架應(yīng)該是可靠,快速和可擴(kuò)展的。 Apache Log4j2 是一個(gè)基于 Java 的日志工具,是Log4j的升級(jí)版本,引入了很多豐富的特性,包括高性

    2024年02月16日
    瀏覽(21)
  • 修復(fù)中間件log4j漏洞方案(直接更換漏洞jar包)

    修復(fù)中間件log4j漏洞方案(直接更換漏洞jar包)

    后臺(tái)服務(wù)里面的log4j漏洞我們已經(jīng)全部升級(jí)處理了,但是一些中間件鏡像包里的log4j漏洞需要單獨(dú)處理 解決辦法以ElasticSearch7.6.2為例: (1)找到容器里面有哪些舊的log4j依賴包 (2)去官網(wǎng)找到對應(yīng)新版本的依賴包 (3)把新的依賴包復(fù)制到和舊的同文件夾下 (4)刪除舊的依

    2024年02月10日
    瀏覽(33)
  • CVE-2021-44228 Apache log4j 遠(yuǎn)程命令執(zhí)行漏洞

    CVE-2021-44228 Apache log4j 遠(yuǎn)程命令執(zhí)行漏洞

    一、漏洞原理 log4j(log for java)是由Java編寫的可靠、靈活的日志框架,是Apache旗下的一個(gè)開源項(xiàng)目,使用Log4j,我們更加方便的記錄了日志信息,它不但能控制日志輸出的目的地,也能控制日志輸出的內(nèi)容格式;通過定義不同的日志級(jí)別,可以更加精確的控制日志的生成過程,

    2024年02月08日
    瀏覽(33)
  • Log4j反序列化命令執(zhí)行漏洞(CVE-2017-5645)&Apache Log4j2 lookup JNDI 注入漏洞(CVE-2021-44228)

    Log4j反序列化命令執(zhí)行漏洞(CVE-2017-5645)&Apache Log4j2 lookup JNDI 注入漏洞(CVE-2021-44228)

    Apache Log4j是一個(gè)用于Java的日志記錄庫,其支持啟動(dòng)遠(yuǎn)程日志服務(wù)器。Apache Log4j 2.8.2之前的2.x版本中存在安全漏洞。攻擊者可利用該漏洞執(zhí)行任意代碼 環(huán)境:vulhub 工具下載地址: ysoserial 利用工具生成payload: 1.創(chuàng)建文件 進(jìn)入容器內(nèi)部,查看文件創(chuàng)建成功 2.查看反彈的shell 有點(diǎn)

    2024年02月11日
    瀏覽(36)
  • java web中部署log4j.xml

    標(biāo)題:Java Web中部署log4j.xml 目錄: 1. 介紹 2. 配置log4j.xml文件 3. 配置web.xml文件 4. 配置Spring框架 5. 配置Spring Bean 6. 總結(jié) ## 1. 介紹 在Java Web開發(fā)中,日志記錄是非常重要的一部分。log4j是一個(gè)常用的Java日志記錄框架,它提供了靈活的配置和強(qiáng)大的日志功能。本篇博客將介紹如何

    2024年02月09日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包