关于log4j 1.x JMSAppender远程命令执行漏洞利用的研究
共 959字,需浏览 2分钟
·
2021-12-22 17:36
本文来自“白帽子社区知识星球”
作者:我太难了
Apache Log4j 1.2 版本的 Java 日志库中存在一个缺陷,JMSAppender 容易受到不受信任 数据的反序列化的影响,如果部署的应用程序配置为使用 JMSAppender 和攻击者的 JMS Broker,允许远程攻击者在服务器上执行代码。发现存在 JNDI 远程命令执行漏洞,效果与 log4j2 漏洞类似,但利用条件相对苛刻。
1. 要有 jms 的环境支持
2. 需要能有写如 log4j.properties 文件内容的权限
通过对漏洞的调试,发现在 JMSAppender 中调用了 lookup 方法,这是因为我们在 log4j.properties 中写入了 log4j.appender.jms=org.apache.log4j.net.JMSAppender,即去调用 JMSAppender.java 中的 activateOptions 方法。然后在 ctx.lookup(name) 中传入我们指定的恶 意 LDAP 服务地址,从而触发了远程代码执行漏洞。所以从中我们可以看出要必须支持 jms 代理的类才可以执行 rce,本例中就是 activemq 存在 jms 代理的类,所以才执行了该漏洞, 否则将不存在问题。也就是说该漏洞不会出现太大的影响,因为首先需要修改 log4j 的配置, 除非我们利用了其他一些漏洞进行写入,否则将很难利用该点进行 RCE。Log4j2 的 RCE 由于 是在用户输入端就可以触发,所以相比 log4j2 的漏洞影响要低很多。
如果觉得本文不错的话,欢迎加入知识星球,星球内部设立了多个技术版块,目前涵盖“WEB安全”、“内网渗透”、“CTF技术区”、“漏洞分析”、“工具分享”五大类,还可以与嘉宾大佬们接触,在线答疑、互相探讨。
▼扫码关注白帽子社区公众号&加入知识星球▼