一问三不知之log4j2漏洞简析
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包,漏洞就是在这个包里产生的,如果你的程序有用到,尽快紧急升级。
临时解决方案
设置jvm参数 “-Dlog4j2.formatMsgNoLookups=true”
设置“log4j2.formatMsgNoLookups=True”
系统环境变量“FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS”设置为“true”
关闭对应应用的网络外连,禁止主动外连
一问三不知之log4j2漏洞简析相关推荐
- NETGEAR 系列路由器命令执行漏洞简析
NETGEAR 系列路由器命令执行漏洞简析 2016年12月7日,国外网站exploit-db上爆出一个关于NETGEAR R7000路由器的命令注入漏洞.一时间,各路人马开始忙碌起来.厂商忙于声明和 ...
- 堆漏洞-UAF漏洞简析
UAF use after free,其内容如同其名称.在free后进行利用.UAF是堆结构漏洞的一种重要的利用方式. 内存块被释放后,其对应的指针被设置为 NULL , 然后再次使用,自然程序会崩溃 ...
- 计算机网络路由器方面的论文,简析计算机网络问题中路由器故障的论文
1 路由器的概念及基本构成 1.1 路由器的概念 路由器是计算机硬件的一个组成部分,其作为网络设备,起到连接计算机与网络的作用,一实现用户顺利上网,完成所需要的工作内容和休闲娱乐.路由器最初产生于上世 ...
- 反病毒软件技术简析与探索(2009年5月18日)
<下文是本人大三时期的一篇课外小论文,是基于大量的对杀毒软件杀毒能力的实验结果而写,请勿转载,谢谢.> 摘 要 为什么即使有杀毒软件的保护,还是有那么多的计算机系统遭到病毒的侵袭呢?答案 ...
- 对旅游行业APP前五名(个人观点)优缺点的简析
(简析旅游行业手机APP)其实老师这次作业要求中的找到行业前五名,其实如果细分的话,旅游行业的APP还可以细分为很多类,像是旅游报团信息的总结提供,特价机票和火车票的提供,旅游路上酒店住宿方面的价格总 ...
- 分享!一文简析RASP技术
众所周知,log4j 2.x安全事件引起了轩然大波,对于信息安全从业者来讲可以称之为"家喻户晓".与之同时引起大家关注的是RASP(Runtime application self ...
- 《Android多媒体应用开发实战详解:图像、音频、视频、2D和3D》——2.3节简析Android安装文件...
本节书摘来自异步社区<Android多媒体应用开发实战详解:图像.音频.视频.2D和3D>一书中的第2章,第2.3节简析Android安装文件,作者 王石磊 , 吴峥,更多章节内容可以访问 ...
- 简析英雄联盟皮城女警近期改动的影响
大家好,鉴于广大玩家对女警从7.14到7.19的改动有许多争议,博主在此发表下自己的看法. 自古以来,女警都是下路一霸,之所以为一霸,原因有以下几个.其一,手长(这个无可置疑,推塔.线上压制就靠这个) ...
- 浅谈跨网站脚本攻击(XSS)的手段与防范(简析新浪微博XSS攻击事件)
本文主要涉及内容: 什么是XSS XSS攻击手段和目的 XSS的防范 新浪微博攻击事件 什么是XSS 跨网站脚本(Cross-sitescripting,通常简称为XSS或跨站脚本或跨站脚本攻击)是一 ...
最新文章
- 《预训练周刊》第23期:Smart Bird:解决变换器性能瓶颈的新方法、Prompt:如何提升预训练模型的迁移效果...
- 【FPGA】SRIO例子程序仿真分析实践
- 计算机语言pandas,计算机语言python100道pandas(含答案)
- Hadoop 核心编程之 HDFS 的文件操作
- 【ACM】会场安排问题
- idea:打包jar(原文by曲高终和寡)
- iOS开发 小知识点
- 一个分布式 JVM 监控工具,非常实用!
- JS:ES6-6 初识Symbol类型
- 报名 | 旷视研究院解读COCO2017人体姿态估计竞赛冠军论文
- 机器学习基础(二)——词集模型(SOW)和词袋模型(BOW)
- 记2020年秋季学期的微波期末考试
- Vue,Javascript--时间戳的操作
- 国货之光!百度飞桨与华为麒麟重磅合作
- vim 日常使用高级篇幅
- 广东第一高中生_前广东第一高中生!曾打爆职业球员!一米八的他还能风车暴扣!...
- Linux 应用调试神器- ASan
- css朗逸保险丝盒机舱,【朗逸保险盒】朗逸保险盒位置图解、拆卸方法_车主指南...
- Spark 3.0 - 6.ML 自定义 Transformer 踩坑大全
- linux开机到登陆的流程图,Linux开机自动登录root,并启动应用程序
热门文章
- Cisco设备如何通过console口连接计算机并对设备进行配置
- uniapp微信小程序获取当前位置信息、经纬度转换、导航地图实现
- 成都 工资 java_成都java工资一般多少,成都java工资水平,成都java工资底薪能到多少...
- git实践系列七:迁出和回退
- 16Aspx.com-书通网中小学生免费在线学习网站源码 带采集带手机版帝国cms内核
- U9 ERP 系统BOM物料清单批量导入导出并新增修改功能
- 【从头到脚】前端实现多人视频聊天— WebRTC 实战(多人篇)
- python知乎爬虫收藏夹_Python爬取知乎问题收藏夹 爬虫入门
- 最全的androidStudio插件
- 计算机等级良好什么意思,计算机二级多少分算过?