1.log4j2漏洞介绍

1.1简介

Apache Log4j 2是对Log4j的升级,它比其前身Log4j 1.x提供了重大改进,并提供了Logback中可用的许多改进,同时修复了Logback架构中的一些问题。是目前最优秀的Java日志框架之一。

2021年11月24日,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞。由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置,经阿里云安全团队验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响。阿里云应急响应中心提醒 Apache Log4j2 用户尽快采取安全措施阻止漏洞攻击。

通过JNDI注入漏洞,黑客可以恶意构造特殊数据请求包,触发此漏洞,从而成功利用此漏洞可以在目标服务器上执行任意代码。注意,此漏洞是可以执行任意代码,这就很恐怖,相当于黑客已经攻入计算机,可以为所欲为了,就像已经进入你家,想干什么,就干什么,比如运行什么程序,植入什么病毒,变成他的肉鸡。


1.2 漏洞评级及影响版本

Apache Log4j 远程代码执行漏洞 严重

影响的版本范围:Apache Log4j 2.x <= 2.14.1

2.log4j2 漏洞简单演示

创建maven工程
引入jar包依赖

<dependencies><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.14.0</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.14.0</version></dependency></dependencies>

编写log4j2配置文件

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN"><!--全局参数--><Properties><Property name="pattern">%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n</Property><Property name="logDir">/data/logs/dust-server</Property></Properties><Loggers><Root level="INFO"><AppenderRef ref="console"/><AppenderRef ref="rolling_file"/></Root></Loggers><Appenders><!-- 定义输出到控制台 --><Console name="console" target="SYSTEM_OUT" follow="true"><!--控制台只输出level及以上级别的信息--><ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout><Pattern>${pattern}</Pattern></PatternLayout></Console><!-- 同一来源的Appender可以定义多个RollingFile,定义按天存储日志 --><RollingFile name="rolling_file"fileName="${logDir}/dust-server.log"filePattern="${logDir}/dust-server_%d{yyyy-MM-dd}.log"><ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout><Pattern>${pattern}</Pattern></PatternLayout><Policies><TimeBasedTriggeringPolicy interval="1"/></Policies><!-- 日志保留策略,配置只保留七天 --><DefaultRolloverStrategy><Delete basePath="${logDir}/" maxDepth="1"><IfFileName glob="dust-server_*.log" /><IfLastModified age="7d" /></Delete></DefaultRolloverStrategy></RollingFile></Appenders>
</Configuration>

创建测试类Log4j2Demo

public class Log4j2Demo {private static  final Logger LOGGER=LogManager.getLogger();public static void main(String[] args) {String username="${java:os}";LOGGER.info("Hello, {}",username);}
}

运行结果

[INFO] Building log4j2-bug-test 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- exec-maven-plugin:3.0.0:exec (default-cli) @ log4j2-bug-test ---
2021-12-11 11:44:14,654  INFO Log4j2Demo:12 - Hello, Windows 10 10.0, architecture: amd64-64
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.140 s
[INFO] Finished at: 2021-12-11T11:44:14+08:00
[INFO] ------------------------------------------------------------------------

在这里面我们可以看到使用${}可以实现漏洞的注入,假设username为用户登录的输入框,即可从这个输入框进行注入,既可查看到一些后台系统信息,如果有黑客在使用JNDI编写恶意代码注入的话,后果是非常严重的。

3. log4j2 快速修复措施

修改log4j2版本
据 Apache 官方最新信息显示,release 页面上已经更新了 Log4j 2.15.0 版本,主要是那个log4j-core包,漏洞就是在这个包里产生的,如果你的程序有用到,尽快紧急升级。

临时解决方案

  1. 设置jvm参数 “-Dlog4j2.formatMsgNoLookups=true”

  2. 设置“log4j2.formatMsgNoLookups=True”

  3. 系统环境变量“FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS”设置为“true”

  4. 关闭对应应用的网络外连,禁止主动外连

一问三不知之log4j2漏洞简析相关推荐

  1. NETGEAR 系列路由器命令执行漏洞简析

    NETGEAR 系列路由器命令执行漏洞简析 2016年12月7日,国外网站exploit-db上爆出一个关于NETGEAR R7000路由器的命令注入漏洞.一时间,各路人马开始忙碌起来.厂商忙于声明和 ...

  2. 堆漏洞-UAF漏洞简析

    UAF use after free,其内容如同其名称.在free后进行利用.UAF是堆结构漏洞的一种重要的利用方式. 内存块被释放后,其对应的指针被设置为 NULL , 然后再次使用,自然程序会崩溃 ...

  3. 计算机网络路由器方面的论文,简析计算机网络问题中路由器故障的论文

    1 路由器的概念及基本构成 1.1 路由器的概念 路由器是计算机硬件的一个组成部分,其作为网络设备,起到连接计算机与网络的作用,一实现用户顺利上网,完成所需要的工作内容和休闲娱乐.路由器最初产生于上世 ...

  4. 反病毒软件技术简析与探索(2009年5月18日)

    <下文是本人大三时期的一篇课外小论文,是基于大量的对杀毒软件杀毒能力的实验结果而写,请勿转载,谢谢.> 摘  要 为什么即使有杀毒软件的保护,还是有那么多的计算机系统遭到病毒的侵袭呢?答案 ...

  5. 对旅游行业APP前五名(个人观点)优缺点的简析

    (简析旅游行业手机APP)其实老师这次作业要求中的找到行业前五名,其实如果细分的话,旅游行业的APP还可以细分为很多类,像是旅游报团信息的总结提供,特价机票和火车票的提供,旅游路上酒店住宿方面的价格总 ...

  6. 分享!一文简析RASP技术

    众所周知,log4j 2.x安全事件引起了轩然大波,对于信息安全从业者来讲可以称之为"家喻户晓".与之同时引起大家关注的是RASP(Runtime application self ...

  7. 《Android多媒体应用开发实战详解:图像、音频、视频、2D和3D》——2.3节简析Android安装文件...

    本节书摘来自异步社区<Android多媒体应用开发实战详解:图像.音频.视频.2D和3D>一书中的第2章,第2.3节简析Android安装文件,作者 王石磊 , 吴峥,更多章节内容可以访问 ...

  8. 简析英雄联盟皮城女警近期改动的影响

    大家好,鉴于广大玩家对女警从7.14到7.19的改动有许多争议,博主在此发表下自己的看法. 自古以来,女警都是下路一霸,之所以为一霸,原因有以下几个.其一,手长(这个无可置疑,推塔.线上压制就靠这个) ...

  9. 浅谈跨网站脚本攻击(XSS)的手段与防范(简析新浪微博XSS攻击事件)

    本文主要涉及内容: 什么是XSS XSS攻击手段和目的 XSS的防范 新浪微博攻击事件 什么是XSS 跨网站脚本(Cross-sitescripting,通常简称为XSS或跨站脚本或跨站脚本攻击)是一 ...

最新文章

  1. 《预训练周刊》第23期:Smart Bird:解决变换器性能瓶颈的新方法、Prompt:如何提升预训练模型的迁移效果...
  2. 【FPGA】SRIO例子程序仿真分析实践
  3. 计算机语言pandas,计算机语言python100道pandas(含答案)
  4. Hadoop 核心编程之 HDFS 的文件操作
  5. 【ACM】会场安排问题
  6. idea:打包jar(原文by曲高终和寡)
  7. iOS开发 小知识点
  8. 一个分布式 JVM 监控工具,非常实用!
  9. JS:ES6-6 初识Symbol类型
  10. 报名 | 旷视研究院解读COCO2017人体姿态估计竞赛冠军论文
  11. 机器学习基础(二)——词集模型(SOW)和词袋模型(BOW)
  12. 记2020年秋季学期的微波期末考试
  13. Vue,Javascript--时间戳的操作
  14. 国货之光!百度飞桨与华为麒麟重磅合作
  15. vim 日常使用高级篇幅
  16. 广东第一高中生_前广东第一高中生!曾打爆职业球员!一米八的他还能风车暴扣!...
  17. Linux 应用调试神器- ASan
  18. css朗逸保险丝盒机舱,【朗逸保险盒】朗逸保险盒位置图解、拆卸方法_车主指南...
  19. Spark 3.0 - 6.ML 自定义 Transformer 踩坑大全
  20. linux开机到登陆的流程图,Linux开机自动登录root,并启动应用程序

热门文章

  1. Cisco设备如何通过console口连接计算机并对设备进行配置
  2. uniapp微信小程序获取当前位置信息、经纬度转换、导航地图实现
  3. 成都 工资 java_成都java工资一般多少,成都java工资水平,成都java工资底薪能到多少...
  4. git实践系列七:迁出和回退
  5. 16Aspx.com-书通网中小学生免费在线学习网站源码 带采集带手机版帝国cms内核
  6. U9 ERP 系统BOM物料清单批量导入导出并新增修改功能
  7. 【从头到脚】前端实现多人视频聊天— WebRTC 实战(多人篇)
  8. python知乎爬虫收藏夹_Python爬取知乎问题收藏夹 爬虫入门
  9. 最全的androidStudio插件
  10. 计算机等级良好什么意思,计算机二级多少分算过?