jenkins java反序列化_Jenkins “Java 反序列化”过程远程命令执行漏洞

###漏洞原理

反序列化是指特定语言中将传递的对象序列化数据重新恢复为实例对象的过程,而在这个过程中会执行一系列的字节流解析和对象实例化操作用于恢复之前序列化时的对象。在原博文所提到的那些 Java 应用里都有特定的接口用于传递序列化对象数据,而在反序列化时并没有限制实例化对象的类型,导致可以任意构造应用中已经包含的对象利用反序列化操作进行实例化。

Java 在进行反序列化操作的时候会使用 ObjectInputStream 类调用 readObject() 方法去读取传递过来的序列化对象字节流进行处理,要想利用反序列化过程进行攻击,就必须构造出一个能够自动执行的代码调用链。而议题《Marshalling Pickles》中巧好就使用 Apache Commons Collections 库构造出了一个能够在反序列化操作时能够自动执行命令的调用链。具体构造详情可参考原议题PPT。

### 漏洞影响

> ZoomEye 进行了全球的探测,发现全球运行着 jenkins 的服务器大概有1.5万台,其中有1811台 jenkins 被确定有漏洞。

###漏洞演示

使用 Payload 生成工具 ysoserial 和 PoC 来对 Jenkins 进行测试。(成功远程命令执行会在服务端 /tmp 目录下创建名为 isvuln 文件)

```

- Jenkins-1.555

```

启动 Jenkins,并检查 /tmp 目录文件

![](https://images.seebug.org/1447211427766)

使用工具生成 Payload,然后使用文中所提供的 PoC 进行漏洞测试:

![](https://images.seebug.org/1447211434060)

再次查看服务器上 /tmp 目录下文件

![](https://images.seebug.org/1447211439652)

服务端在反序列化恶意构造的数据时导致命令执行,在 /tmp 目录下创建了 isvuln 文件。

---

#### 关联漏洞链接

1. JBoss “Java 反序列化”过程远程命令执行漏洞 https://www.sebug.net/vuldb/ssvid-89723

2. WebLogic “Java 反序列化”过程远程命令执行漏洞 https://www.sebug.net/vuldb/ssvid-89726

3. WebSphere “Java 反序列化”过程远程命令执行漏洞 https://www.sebug.net/vuldb/ssvid-89727

4. 常见 Java Web 容器通用远程命令执行漏洞 https://www.sebug.net/vuldb/ssvid-89713

#### 参考链接

1. http://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-application-have-in-common-this-vulnerability/

2. https://access.redhat.com/solutions/2045023

3. http://d.hatena.ne.jp/Kango/touch/20151110/1447175137?from=singlemessage&isappinstalled=0

loading-bars.svg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF DataGrid 在Header中显示行号

在Datagrid中显示行号&#xff0c;如果你绑定的datacontext中没有序号&#xff0c;又想要显示序号的时候&#xff0c;可以按照本文的方法显示喽~效果如下图&#xff1a;来看看代码吧~MainWindow.xaml<Window x:Class"wpfcore.MainWindow"xmlns"http://schema…

每日一笑 | 爱的魔力转圈圈~

全世界只有3.14 % 的人关注了数据与算法之美&#xff08;素材源网络&#xff0c;侵权删&#xff09;

怎样维护成功的开源项目

开源可不仅仅是将代码扔到网上就万事大吉了&#xff0c;将开源项目变成能让自己引以为豪的东西才算成功。那么&#xff0c;你需要注意哪些方面呢&#xff1f; 写好指导性文字 每一个开源项目有三样东西是少不了的&#xff1a;项目目标和方法的简要说明、如何参与和授权许可。最…

java调试案例_Spring-boot的debug调试代码实例

这篇文章主要介绍了Spring-boot的debug调试代码实例,文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下xml文件中配置&#xff1a;scf.server.vm.all-Xms512m -Xmx512m -Xmn128m -Xss1024K -XX:MetaspaceSize128m -…

技术管理中的手段——奖励和惩罚

对于技术出身的同学来说&#xff0c;一旦晋升为管理岗&#xff0c;则意味着面临很多棘手的问题&#xff0c;例如&#xff1a;手下的人不听管教&#xff0c;无法按时完成任务等等。一般凭技术晋升的同学&#xff0c;自然是技术中的佼佼者&#xff0c;作为团队中的骨干&#xff0…

用科学实验玩“坏”二十四节气,中华传统还能这么学,科学、节气、民俗三重启蒙!...

▲数据汪特别推荐点击上图进入玩酷屋之前我们“迪比的冒险之旅”和“delightmom魔幻科学实验”做完团购活动之后&#xff0c;很多妈妈都跟小木说拿回去孩子特别喜欢&#xff0c;每个实验做了好几遍还不尽兴&#xff0c;经常追问小木有没有新的实验更新。看下图孩子玩的多么开心…

linux 怎么完全卸载mysql数据库

在linux下开发&#xff0c;mysql数据库是经常用到的&#xff0c;对于初学者来说&#xff0c;在linux怎么安装卸载mysql数据库&#xff0c;也许可能比较痛苦&#xff0c;这里简单介绍下&#xff0c;怎么卸载msql数据库。a&#xff09;查看系统中是否以rpm包安装的mysql[rootlinu…

java 1.8 vm_HotSpot虚拟机在java 1.8中的新实现

HotSpotJava HotSpot 虚拟机是 Java SE 平台的一个核心组件。它实现 Java 虚拟机规范&#xff0c;并作为 Java 运行时环境中的一个共享库来提供。作为 Java 字节码执行引擎&#xff0c;它在多种操作系统和架构上提供 Java 运行时设施&#xff0c;如线程和对象同步。它包括自适应…

用BenchmarkDotNet看Method

在前面的文章中看了Property的几种不同访问方式《用BenchmarkDotNet看Property》&#xff0c;性能调用上的差别明显&#xff0c;那同样作为class里重要成员&#xff0c;Method性能如何呢&#xff1f;下面是被测试方法public class MyClass{public string MyMethod(){return Dat…

美国老师用的思维导图书,真正培养孩子的思维能力!

▲数据汪特别推荐点击上图进入玩酷屋小木读大学的时候&#xff0c;无意间在图书馆接触到了东尼博赞的《思维导图》。当时有好几个朋友和我推荐过这本书&#xff0c;我就借来看了。阅读之后&#xff0c;我发现对我来说&#xff0c;这真是不可多得一本好书——它改变了我20多年的…

Linux重定向详解

I/O重定向详解及应用实例 1、 基本概念&#xff08;这是理解后面的知识的前提&#xff0c;请务必理解&#xff09; a、 I/O重定向通常与 FD有关&#xff0c;shell的FD通常为10个&#xff0c;即 0&#xff5e;9&#xff1b; b、 常用FD有3个&#xff0c;为0&#xff08;stdin&am…

filesystemwatch java_C#方法的委托和java中的回调

先看个效果20130415.C#监视文件夹,显示文件夹操作到listView上代码实现,以前在学校生活写的,就几句代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;us…

每日一笑 | 为什么男生追到一半就不追了?

全世界只有3.14 % 的人关注了数据与算法之美&#xff08;图源网络&#xff0c;侵权删&#xff09;

NET问答: 枚举 和 常量 在使用时该怎么抉择?

咨询区 Draco&#xff1a;我了解enum有一段时间了&#xff0c;不过我发现它和 常量 特别像&#xff0c;我现在特别想知道什么时候该用 enum 而不是 const&#xff0c;反之亦然&#xff0c;以及使用 enum 的一些优点。回答区 Andrew Barrett&#xff1a;如果你想定义一组值&…

java sorted_Java记录 -59- SortedSet

SortedSet是一个接口&#xff0c;其继承了Set&#xff0c;而TreeSet实现了SortedSet。public interface SortedSet extends Set进一步提供关于元素的总体排序 的 Set。这些元素使用其自然顺序进行排序&#xff0c;或者根据通常在创建有序 set 时提供的 Comparator 进行排序。该…

转:超越设计模

转&#xff1a;http://www.ibm.com/developerworks/cn/java/j-lo-beyondpattern/刘 旭进, 软件开发工程师, IBM 中国软件开发中心简介&#xff1a; 可复用面向对象软件的基础 -- 设计模式&#xff0c;以其可复用的设计初衷、精巧的逻辑思维被广大面向对象程序设计所追捧。但不少…

为什么中国天才都往美国跑,可美国人的数学那么槽糕

中国天才少年尹希&#xff0c;17岁时收到哈佛大学博士offer&#xff0c;31岁成为哈佛最年轻华人正教授。中国年轻科学家、未来科学大奖数学与计算机奖获得者许晨阳&#xff0c;于2018年加入美国麻省理工&#xff0c;选择去世界顶尖的地方看看。22岁中国“神童”曹原&#xff0c…

2021年,推荐你使用.NET 5的7大原因

在.NET Core的早期版本中&#xff0c;每个版本都发布了重要的性能改进&#xff0c;从.NET Core 2.0到.NET Core 2.1到.NET Core 3.0的每一次版本升级&#xff0c;都有着大量的性能优化和提升&#xff0c;而随着大一统的.NET 5的发布&#xff0c;我发现.NET 5实现了更多的性能改…

java util map,我应该如何命名java.util.Map?

I have a java.util.Map that maps from a logical name to a set of parameters to use with that name.Map howShouldINameThee ...;What is the best name for this map?Should I go simple and just call this parameters or parametersMap?Do I include information ab…

如何使用VIM的Help

很多时候在用到vim的命令的时候&#xff0c;都会去网上搜索&#xff0c;殊不知&#xff0c;如果熟练使用VIM的help&#xff0c;可以达到事半功倍的效果。 下面介绍如何使用VIM的help&#xff1a; 1. 在vim的一般模式中输入&#xff1a;help可以进入vim的help界面 这里面注…