ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

[JavaWeb]Log4j的前因后果

2022-02-01 21:04:31  阅读:221  来源: 互联网

标签:JavaWeb jndi 前因后果 漏洞 lookup 日志 Log4j 进行


Log4j的前因后果

简介

Log4j的进化史

Log4J的三大组件:
Logger:日志记录器,负责收集处理日志记录 (如何处理日志)
Appender:日志输出目的地,负责日志的输出 (输出到什么地方)
Layout:日志格式化,负责对输出的日志格式化(以什么形式展现)

还是一如既往的先对其的应用有个大概的了解,有利于对 漏洞的全局把控

漏洞相关知识前置

由于Log4j漏洞是利用了Log4j.lookup的解析+jndi的相关漏洞,最终触发了所谓的“核弹级”漏洞。

Log4j的应用架构

image

JNDI的应用结构

image

漏洞分析

先用网上的exp随便测了测,发现error和fetal会触发,而info和debug不会触发

image

所以接下来,首先要来分析为什么error和fetal会触发?又为什么info和debug不会触发

流程分析

  • 进入日志记录后,首先判断了日志是否需要记录。确认记录,继续跟进
    image

  • 跟进后进行了日志的格式化,在对事件信息进行格式的同时进行了lookup判断,可以看到如果对于${}包含的事件消息则先对offset进行回退,也就是先不保存,然后再开始对${}进行解析
    image

  • 先匹配到了${}中包裹的字符串
    image
    image

  • 再对获取到的字符串不断进行递归检测${},看是否还能进行替换
    image

  • 继续进行识别,进行变量替换
    image

  • 经过无数遍的字符串扫描识别后,看到了解析器组会依次对变量进行解析,而且同时看到了可以解析jndi的相关变量
    image

  • 一直跟到jndiManager#lookup(),发现没有任何过滤。
    image

  • 还有个问题就是为什么info和debug不能进行jndi利用
    image
    分析了下,主要是因为我这里测试的方式不是webAPP,所以不执行WebLookup的插件。也就无法进行jndi的利用了

  • 到此,分析完了log4j的漏洞细节
    分析下来就是log4j支持${}的表达式,会对其进行递归解析。官方开启此种方式是为了能够快速获取其他信息。但对jndi的支持,却导致了此次的漏洞。

log4j中项目lookup的作用:** Lookups provide a way to add values to the Log4j configuration at arbitrary places. They are a particular type of Plugin that implements the StrLookup interface. **”
以上内容复制于log4j2的官方文档lookup - Office Site。其清晰地说明了lookup的主要功能就是提供另外一种方式以添加某些特殊的值到日志中,以最大化松散耦合地提供可配置属性供使用者以约定的格式进行调用。

漏洞利用

直接就是套用jndi的exp。

漏洞修复

官方先是给出了内网白名单的修复--》被解析漏洞绕过--》然后又被发现逻辑漏洞

泛域名解析:就是多个子域名解析到同一个ip上

流程分析小结:跟的时候总是跟的目标不对,而且似乎对jndi的底层实现不熟。对关键类中的敏感方法不够感冒。。。

标签:JavaWeb,jndi,前因后果,漏洞,lookup,日志,Log4j,进行
来源: https://www.cnblogs.com/Aurora-M/p/15844578.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有