本文分四个方面来说说Log4j2的相关问题
1、Log4j2原理
2、如何利用漏洞进行攻击
3、解决方案
4、带来的思考。
此次漏洞影响面之广足以载入安全史册,Log4j2凭借一己之力让全球程序员过上996的幸福生活,其中带来的经济损失也不可估量。
一、Log4j2原理
Apache Log4j2被阿里安全团队爆出有任意代码执行漏洞,危险等级:高危!接下来我们先搞明白Log4j2的实现,然后在阐述是如何利用漏洞攻击的。
通常我们会通过如下代码块输出变量:
logger.info(<span data-raw-text="" "="" data-textnode-index="11" data-index="233" class="character">"user name: {}, alias name: {}<span data-raw-text="" "="" data-textnode-index="11" data-index="263" class="character">", userName, aliasName)
userName和aliasName是java的一个普通对象。
如果我们想通过Log4j2输出的对象不在程序中可以吗?答案是肯定的,Log4j2提供了Lookups功能,可以用来输出很多内容。
开头的描述清晰的说明了lookup的主要功能就是提供另外一种方式以添加某些特殊的值到日志中,以最大化松散耦合地提供可配置属性供