架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 171|回复: 4

[资料] .NET 程序测试 Java 项目 log4j2 是否存在远程代码执行漏洞

[复制链接]
发表于 2021-12-11 21:06:29 | 显示全部楼层
最近两天被朋友圈的“Apache Log4j2 远程代码执行漏洞”刷屏了,主要是因为组件存在 Java JNDI 注入漏洞:当程序将用户输入的数据记入日志时,攻击者通过构造特殊请求,来触发 Apache Log4j2 中的远程代码执行漏洞,从而利用此漏洞在目标服务器上执行任意代码。

影响范围

Apache Log4j 2.x <= 2.14.1

JNDI(Java Naming and Directory Interface)是Java提供的Java 命名和目录接口。通过调用JNDI的API应用程序可以定位资源和其他程序对象。JNDI是Java EE的重要部分,需要注意的是它并不只是包含了DataSource(JDBC 数据源),JNDI可访问的现有的目录及服务有:JDBC、LDAP、RMI、DNS、NIS、CORBA,摘自百度百科。

网上很多文章说如何修复漏洞和漏洞截图,几乎没有说如何测试项目是否存在该漏洞。Java 使用 Log4j2 主要测试代码如下:


简单来说就是 Log4j2 会通过 rmi 或者 ldap 协议访问后面的地址,根据协议的内容解析,有可能执行已经恶意构造的代码。

网上几乎都是通过打开 Windows 系统的计算器来证明漏洞的存在,代码如下:

既然 log4j2 会使用 rmi 或者 ldap 协议访问攻击者的服务器,rmi 和 ldap 协议都是基于 TCP 传输的,那么我们可以直接使用 .NET 监听一个 TCP 端口,如果调用 log4j2 打印日志会访问 .NET 的监听的端口,就证明可能存在漏洞,如果没有访问,就证明安全

.NET 生成的测试程序非常小 6kb,代码如下:

尝试使用 log4j 组件 2.14.0 版本执行打印,效果图如下:

cunzai.gif

尝试将 log4j 组件升级成 2.15.0 版本,再次执行,效果图如下:

bucunzai.gif

升级版本后,发现调用打印日志后,Java 程序没有再访问外部端口

有兴趣的朋友,可以参考如下链接复现漏洞,调起计算器。

https://github.com/ilsubyeega/log4j2-exploits
https://github.com/tangxiaofeng7/CVE-2021-44228-Apache-Log4j-Rce

最后,附上测试程序:

测试程序.rar (2.66 KB, 下载次数: 1)





上一篇:【实战】.NET/C# 创建 SQLite 数据库并简单增删改查
下一篇:【实战】CentOS 系统部署 nacos 教程
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2021-12-13 13:37:35 | 显示全部楼层
在 java 8 121 版本之后需要配置如下,才可能复现漏洞:

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2021-12-19 12:10:22 | 显示全部楼层
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-12-20 23:09:51 | 显示全部楼层
来观摩一下大佬的操作
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-12-26 16:54:47 | 显示全部楼层
又来学习学习。。。。。。。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2022-1-29 07:11

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表