Apache Log4j socket receiver deserialization vulnerability(CVE-2017-5645)

栏目: 服务器 · 发布时间: 6年前

内容简介:Apache Log4j socket receiver deserialization vulnerability(CVE-2017-5645)

Log4j TCP socket server or UDP socket server在真正开发环境使用的不多,所以漏洞影响有限,利用思路跟之前的反序列化漏洞方式没有什么不同。

漏洞分析

根据漏洞描述,可知漏洞存在 TcpSocketServer类中。进入TcpSocketServer类的run方法,run方法中创建SocketHandler对象并调用了start()方法。 SocketHandler是TcpSocketServer的内部类,并且继承自Log4jThread,Log4jThread继承自Thread。 SocketHandle的start()方法调用会执行run方法,run方法主要逻辑是启动一个循环不断的接收序列化的日志流,问题就存在这里。 Apache Log4j socket receiver deserialization vulnerability(CVE-2017-5645) logEvents是一个泛型方法

public interface LogEventBridge<T extends InputStream> {
    void logEvents(T var1, LogEventListener var2) throws IOException;
    T wrapStream(InputStream var1) throws IOException;
}

实例化对化TcpSocketServer对象时传递的是ObjectInputStreamLogEventBridge实例

public static TcpSocketServer<ObjectInputStream> createSerializedSocketServer(int port) throws IOException {
	LOGGER.entry(new Object[]{Integer.valueOf(port)});
	TcpSocketServer<ObjectInputStream> socketServer = new TcpSocketServer(port, new ObjectInputStreamLogEventBridge());
	return (TcpSocketServer)LOGGER.exit(socketServer);
}

跟进ObjectInputStreamLogEventBridge的logEvents方法,可以看到问题的原因了 Apache Log4j socket receiver deserialization vulnerability(CVE-2017-5645)

漏洞测试

pom.xml配置

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.8.1</version>
    </dependency>
public static void main(String argv[]) {
        try {
            TcpSocketServer socketServer =  TcpSocketServer.createSerializedSocketServer(1234);
            socketServer.run();
        } catch (Exception e) {
        }
    }

最后给一个利用截图 Apache Log4j socket receiver deserialization vulnerability(CVE-2017-5645)

修复方法

Log4j升级到2.8.2版本,已经加了白名单校验 Apache Log4j socket receiver deserialization vulnerability(CVE-2017-5645) Apache Log4j socket receiver deserialization vulnerability(CVE-2017-5645)

漏洞检测

sudo -u admin lsof -X | grep log4j | grep jar | grep -v 2.8.2

参考

[1]: http://seclists.org/oss-sec/2017/q2/78


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

自制编程语言 基于C语言

自制编程语言 基于C语言

郑钢 / 人民邮电出版社 / 2018-9-1 / CNY 89.00

本书是一本专门介绍自制编程语言的图书,书中深入浅出地讲述了如何开发一门编程语言,以及运行这门编程语言的虚拟机。本书主要内容包括:脚本语言的功能、词法分析器、类、对象、原生方法、自上而下算符优先、语法分析、语义分析、虚拟机、内建类、垃圾回收、命令行及调试等技术。 本书适合程序员阅读,也适合对编程语言原理感兴趣的计算机从业人员学习。一起来看看 《自制编程语言 基于C语言》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具