Java安全之log4j反序列化漏洞分析
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java安全之log4j反序列化漏洞分析,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2465字,纯文字阅读大概需要4分钟。
内容图文
Java安全之log4j反序列化漏洞分析
首发:零队公众号
0x00 前言
前段时间在看某个cms代码的时候,发现log4j组件版本存在漏洞,并且开启了端口,但web站点是nginx反向代理的,而在外网并没有开放到该端口,所以并没有利用成功。但该漏洞遇到的比较少,就算一些cms中log4j组件版本存在漏洞,但是该漏洞需要使用SimpleSocketServer
开启端口才能够接受socket中的数据进行反序列化操作,从而才能利用。
0x01 log4j 漏洞简介
漏洞简介
log4j用的其实还是比较多,记录一些Java的日志,这个相信接触过Java的都知道,在此不做多的赘诉。
漏洞版本:CVE-2019-17571
1.2.4 <= Apache Log4j <= 1.2.17
漏洞原因是因为调用SimpleSocketServer.main
开启一个端口,进行接受数据,进行反序列化操作。
根据官方描述作用是把接受到的LoggingEvent
作为本地的日志记录事件,再使用在服务器端配置的Log4J环境来记录日志。默认可能会开启在4560端口中。
0x02 log4j 反序列化分析
漏洞复现
配置漏洞代码
import org.apache.log4j.net.SimpleSocketServer;
public class log4j {
public static void main(String[] args) {
System.out.println("INFO: Log4j Listening on port 1234");
String[] arguments = {"1234", (new log4j()).getClass().getClassLoader().getResource("log4j.properties").getPath()};
SimpleSocketServer.main(arguments);
System.out.println("INFO: Log4j output successfuly.");
}
}
配置log4j文件
log4j.rootCategory=DEBUG,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.threshold=DEBUG
log4j.appender.stdout.layout.ConversionPattern=[%d{yyy-MM-dd HH:mm:ss,SSS}]-[%p]-[MSG!:%m]-[%c\:%L]%n
然后使用yso生成gadget的序列化数据,直接使用nc进行发送。但是nc发送传输有时候会有些问题,有时候传输数据缺失,会反序列化失败。
nc 127.0.0.1 1234 < log4j.curl.bin
漏洞分析
漏洞比较简单,还是现在漏洞位置先下断点。
跟进查看
在这里开启serverSocket
进行监听,也就是socket的服务端,然后new了SocketNode
进行传入。
继续跟进
而在这里接受了socket的数据。
下一步会来到run的这个方法里面,是因为前面调用了线程的start,而start的底层会调用run
直接就对ois
也就是刚刚接受的socket数据,调用readobject进行反序列化。
0x03 工具编写
在复现的时候,使用nc发送数据时数据传输不完整,导致反序列化失败。就随手写了一个小工具,方便下次遇到的时候使用(可能也极少能遇到,比较鸡肋)
命令执行:
反弹shell:
POC:
由于比较少见,反序列化回显暂不构造。
github地址:https://github.com/nice0e3/log4j_POC
动动小手点点star
0x04 结尾
log4j的反序列化漏洞比较简单,而类似于这种反序列化工具原理其实差不多,只是发包构造的数据包不一样,分析一下漏洞知道漏洞怎么形成的。原理其实比较简单,但也会遇到很多细节问题,如回显方式,或gui的优化问题。
内容总结
以上是互联网集市为您收集整理的Java安全之log4j反序列化漏洞分析全部内容,希望文章能够帮你解决Java安全之log4j反序列化漏洞分析所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。