Apache Log4j2 Jndi RCE CVE-2021-44228漏洞原理讲解

Apache Log4j2 Jndi RCE CVE-2021-44228漏洞原理讲解

  • 一、什么是Log4j2
  • 二、环境搭建
  • 三、简单使用Log4j2
  • 四、JDNI和RMI
    • 4.1、启动一个RMI服务端
    • 4.2、启动一个RMI客户端
    • 4.3、ldap
  • 五、漏洞复现
  • 六、Python批量检测

  • 参考视频:https://www.bilibili.com/video/BV1mZ4y1D7Ki/?spm_id_from=333.337.search-card.all.click&vd_source=93ef4007c464e7143f2a9fb5be297117

一、什么是Log4j2

  • Log4j2(Log for java)是Apache软件基金会下一个优秀java程序日志监控组件
  • Log4j2远程代码执行漏洞细节被公开【影响版本Log4j 2.x <= 2.15.0-rc1】
  • 影响:多达60644个开源软件,涉及相关版本软件包更是达到了321094个

二、环境搭建

  1. 使用Intellij IDEA创建项目
    在这里插入图片描述
    在这里插入图片描述

  2. pom.xml中添加依赖
    在这里插入图片描述

  3. 点击刷新
    在这里插入图片描述

  4. 获得log4j的源码
    在这里插入图片描述

三、简单使用Log4j2

在这里插入图片描述

  • ALL <DEBUG < INFO < WARN < ERROR < FATAL <OFF (只有等级>=设置的等级才会输出日志【ERROR、FATAL】)
  1. 输出错误日志
    在这里插入图片描述

  2. Log4j2提供了lookup功能
    在这里插入图片描述

四、JDNI和RMI

  • 什么是JDNI?
    • JNDI(Java Naming and Directory Interface)本质是可以操作目录服务、域名服务的一组接口
    • JNDI可访问的现有的目录及服务有:JDBC、LDAPRMI、DNS、NIS、CORBA。
  • 什么RMI?
    • RMl:远程方法调用(Remote Method Invoke)
    • 客户端(Client)可以远程调用服务端(Server)上的方法,JVM虚拟机能够远程调用另一个JVM虚拟机中的方法

4.1、启动一个RMI服务端

在这里插入图片描述

  1. 服务端:
    在这里插入图片描述
  2. 服务端的资源:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 使用python开启本地的一个web服务
    在这里插入图片描述
    在这里插入图片描述
  4. 启动RMI服务端:
    在这里插入图片描述

4.2、启动一个RMI客户端

在这里插入图片描述

  1. 创建
    在这里插入图片描述

  2. 运行,发生报错,是因为高版本的java是不支持rmi获取相关的资源,需要添加一些设置才可以
    在这里插入图片描述
    在这里插入图片描述

  3. 重新运行,虽然没有报错,但是依旧没有“启动计算器”,代码不能够执行,需要再添加一条代码
    在这里插入图片描述
    在这里插入图片描述

  4. 再次重新运行:打印了“hello”,并且调出了计算器
    在这里插入图片描述

  5. 利用log4j的lookup的功能,也成功的请求了资源
    在这里插入图片描述
    在这里插入图片描述

4.3、ldap

  • ldap与rmi类似

五、漏洞复现

  1. 靶场地址:https://github.com/vulhub/vulhub/tree/master/log4j/CVE-2021-44228
  2. 工具:JNDIExploit-1.2-SNAPSHOT.jar:https://github.com/zzwlpx/JNDIExploit
java -jar JNDIExploit.jar -h # 查看参数说明,其中 --ip 参数为必选参数
	-i , --ip 		# Local ip address
	-1 , --ldapPort 	# Ldap bind port(default:1389)
	-p , --httpPort 	# Http bind port(default:8080)
	-u , --usage 		# Show usage (default:false)
	-h , --help 		# Show this help

在这里插入图片描述

  1. 靶场地址:120.77.38.47
    在这里插入图片描述

  2. 将工具放在攻击机上:162.14.83.77
    在这里插入图片描述

  3. 在攻击机上运行工具:162.14.83.77是攻击机的IP地址
    在这里插入图片描述

  4. 查看工具用法
    在这里插入图片描述

  5. 攻击机开启监听
    在这里插入图片描述

  6. 使用反弹shell
    在这里插入图片描述
    在这里插入图片描述

  7. 攻击机监听成功

六、Python批量检测

在这里插入图片描述

  • https://github.com/cisagov/log4j-scanner

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入浅出 -- 系统架构之Keepalived搭建双机热备

Keepalived重启脚本双机热备搭建 ①首先创建一个对应的目录并下载keepalived安装包&#xff08;提取码:s6aq&#xff09;到Linux中并解压&#xff1a; [rootlocalhost]# mkdir /soft/keepalived && cd /soft/keepalived [rootlocalhost]# wget https://www.keepalived.…

MYSQL 锁机制 与 MVCC多版本并发

MYSQL锁机制与优化以及MVCC底层原理 锁分类 乐观锁&#xff0c;悲观锁 从性能上分为乐观锁&#xff08;版本对比,版本一致就更新&#xff0c;不一致就不更新或CAS机制&#xff09;和悲观锁&#xff08;锁住资源等待&#xff09;&#xff0c;乐观锁适合读比较多的场景&#x…

无监督学习简介

无监督学习简介 一、定义和核心概念 无监督学习的定义 无监督学习是机器学习的一个关键分支&#xff0c;它涉及到从未标注数据中学习和提取信息。不同于其他学习类型&#xff0c;无监督学习的数据集没有提供任何显式的输出标签或结果。因此&#xff0c;这种学习方法的主要任务…

运放知识点总结

目录 一、运放基础知识 (operational amplifier) 1.由来 2.用途 3.符号 4.内部结构​编辑 5.虚短虚断 二、同相放大电路 &#xff08;Non-inverting Amplifier&#xff09; 三、反相放大电路 (Inverting Amplifier) 四、差分放大电路 (Difference Amplifier) 五、加法…

如何使用CSS构建一个瀑布流布局

如何使用CSS构建一个瀑布流布局 瀑布流布局是一种常见的网页布局方式&#xff0c;其中元素以不同的大小排列&#xff0c;且行与列之间没有不均匀的间隙。在瀑布流布局中&#xff0c;即使某一行或列中的元素较短&#xff0c;下一个元素也会占据空间。 如何实现瀑布流布局 实现…

MacOS Docker 可视化面板 Portainer

一、简介 Portainer 是一个可视化的容器镜像图形管理工具&#xff0c;使用 Portainer 可以轻松构建、管理和维护Docker 环境。 而且完全免费&#xff08;portainer-ce 是免费的&#xff0c;portainer-ee 是需要授权的&#xff0c;今天安装的是 portainer-ce 版本&#xff09;&…

Chatgpt掘金之旅—有爱AI商业实战篇|社交媒体管理|(七)

演示站点&#xff1a; https://ai.uaai.cn 对话模块 官方论坛&#xff1a; www.jingyuai.com 京娱AI 一、AI技术社交媒体创业有哪些机会&#xff1f; 人工智能&#xff08;AI&#xff09;技术作为当今科技创新的前沿领域&#xff0c;为创业者提供了广阔的机会和挑战。随着AI技…

如何注册midjourney账号

注册Midjourney账号比较简单&#xff0c;准备好上网工具&#xff0c;进入官网 Midjourney访问地址&#xff1a; https://www.midjourney.com/ 目前没有免费使用额度了&#xff0c;会员最低 10 美元/月&#xff0c;一般建议使用30美元/月的订阅方案。了解如何订阅可以查看订阅…

设计模式——组合模式08

组合模式&#xff1a;把类似对象或方法组合成结构为树状的设计思路。 例如部门之间的关系。 设计模式&#xff0c;一定要敲代码理解 抽象组件 /*** author ggbond* date 2024年04月06日 08:54* 部门有&#xff1a;二级部门&#xff08;下面管三级部门&#xff09; 三级部门 &a…

马林思维个人总结--情绪模型/方法论

马林思维一些观点总结&#xff0c;出于个人归纳&#xff0c;认为对自己有用的就整理起来。持续更新中。 文章目录 一、价值点1&#xff1a; 情绪-思维-行为 模型---情绪为王&#xff0c;这个世界是非理性的1. 情绪才是最本质的东西&#xff0c; 情绪决定思维&#xff0c;思维决…

【Canvas与艺术】绘制灰色橄榄枝环绕“Premium Quality”徽章

【关键点】 利用复数计算出树叶的控制点&#xff0c;用二次贝塞尔曲线勾画树叶。 【成果图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head&…

海外语言任务商城源码 海外仓库系统及商城系统

海外语言任务商城源码 海外仓库系统及商城系统 自带利息宝理财活动文本搭建教程 搭建简单&#xff0c;前台是单语言的。 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89013345 更多资源下载&#xff1a;关注我。

【.Net】DotNetty

文章目录 概述NIO和BIO、AIODotNetty适用场景DotNetty的整体架构和模块DotNetty的使用示例来源 概述 本系列文章主要讲述由微软Azure团队研发的.net的版本的netty&#xff0c;Dotnetty。所有的开发都将基于.net core 3.1版本进行开发。 Dotnetty是什么&#xff0c;原本Netty是…

wordpress全站开发指南-面向开发者及深度用户(全中文实操)--wordpress中的著名循环

wordpress中的著名循环 首先&#xff0c;在深入研究任何代码之前&#xff0c;我们首先要确保我们有不止一篇博客文章可以工作。因此&#xff0c;我们要去自己的wordpress站点&#xff0c;从侧边栏单机Posts(文章)&#xff0c;进行创建 在执行代码的时候会优先执行single.php如…

第四百四十二回 再谈flutter_launcher_icons包

文章目录 1. 概念介绍2. 使用方法3. 示例代码4. 经验与总结4.1 经验分享4.2 内容总结 我们在上一章回中介绍了"overlay_tooltip简介"相关的内容&#xff0c;本章回中将 再谈flutter_launcher_icons包.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 …

sqlmap(四)案例

一、注入DB2 http://124.70.71.251:49431/new_list.php?id1 这是墨者学院里的靶机&#xff0c;地址&#xff1a;https://www.mozhe.cn/ 1.1 测试数据库类型 python sqlmap.py -u "http://124.70.71.251:49431/new_list.php?id1" 1.2 测试用户权限类型 查询选…

WCH恒沁单片机-CH32V307学习记录2----FreeRTOS移植

RISC-V 单片机 FreeRTOS 移植 前面用了 5 篇博客详细介绍了 FreeRTOS 在 ARM Cortex-M3 MCU 上是如何运行的。 FreeRTOS从代码层面进行原理分析系列 现在我直接用之前的 RISC-V MCU 开发板子&#xff08;CH32V307VCT6&#xff09;再次对 FreeRTOS 进行移植&#xff0c;其实也…

深度学习理论基础(六)Transformer多头注意力机制

目录 一、自定义多头注意力机制1. 缩放点积注意力&#xff08;Scaled Dot-Product Attention&#xff09;● 计算公式● 原理 2. 多头注意力机制框图● 具体代码 二、pytorch中的子注意力机制模块 深度学习中的注意力机制&#xff08;Attention Mechanism&#xff09;是一种模仿…

html骨架以及常见标签

推荐一个网站mdn。 html语法 双标签&#xff1a;<标签 属性"属性值">内容</标签> 属性&#xff1a;给标签提供附加信息。大多数属性以键值对的形式存在。如果属性名和属性值一样&#xff0c;可以致谢属性值。 单标签&#xff1a;<标签 属性"属…

【JavaWeb】Day33.MySQL概述

什么是数据库 数据库&#xff1a;英文为 DataBase&#xff0c;简称DB&#xff0c;它是存储和管理数据的仓库。 像我们日常访问的电商网站京东&#xff0c;企业内部的管理系统OA、ERP、CRM这类的系统&#xff0c;以及大家每天都会刷的头条、抖音类的app&#xff0c;那这些大家所…