jenkins java反序列化_Jenkins “Java 反序列化”过程远程命令执行漏洞
###漏洞原理
反序列化是指特定語言中將傳遞的對(duì)象序列化數(shù)據(jù)重新恢復(fù)為實(shí)例對(duì)象的過程,而在這個(gè)過程中會(huì)執(zhí)行一系列的字節(jié)流解析和對(duì)象實(shí)例化操作用于恢復(fù)之前序列化時(shí)的對(duì)象。在原博文所提到的那些 Java 應(yīng)用里都有特定的接口用于傳遞序列化對(duì)象數(shù)據(jù),而在反序列化時(shí)并沒有限制實(shí)例化對(duì)象的類型,導(dǎo)致可以任意構(gòu)造應(yīng)用中已經(jīng)包含的對(duì)象利用反序列化操作進(jìn)行實(shí)例化。
Java 在進(jìn)行反序列化操作的時(shí)候會(huì)使用 ObjectInputStream 類調(diào)用 readObject() 方法去讀取傳遞過來的序列化對(duì)象字節(jié)流進(jìn)行處理,要想利用反序列化過程進(jìn)行攻擊,就必須構(gòu)造出一個(gè)能夠自動(dòng)執(zhí)行的代碼調(diào)用鏈。而議題《Marshalling Pickles》中巧好就使用 Apache Commons Collections 庫構(gòu)造出了一個(gè)能夠在反序列化操作時(shí)能夠自動(dòng)執(zhí)行命令的調(diào)用鏈。具體構(gòu)造詳情可參考原議題PPT。
### 漏洞影響
> ZoomEye 進(jìn)行了全球的探測,發(fā)現(xiàn)全球運(yùn)行著 jenkins 的服務(wù)器大概有1.5萬臺(tái),其中有1811臺(tái) jenkins 被確定有漏洞。
###漏洞演示
使用 Payload 生成工具 ysoserial 和 PoC 來對(duì) Jenkins 進(jìn)行測試。(成功遠(yuǎn)程命令執(zhí)行會(huì)在服務(wù)端 /tmp 目錄下創(chuàng)建名為 isvuln 文件)
```
- Jenkins-1.555
```
啟動(dòng) Jenkins,并檢查 /tmp 目錄文件

使用工具生成 Payload,然后使用文中所提供的 PoC 進(jìn)行漏洞測試:

再次查看服務(wù)器上 /tmp 目錄下文件

服務(wù)端在反序列化惡意構(gòu)造的數(shù)據(jù)時(shí)導(dǎo)致命令執(zhí)行,在 /tmp 目錄下創(chuàng)建了 isvuln 文件。
---
#### 關(guān)聯(lián)漏洞鏈接
1. JBoss “Java 反序列化”過程遠(yuǎn)程命令執(zhí)行漏洞 https://www.sebug.net/vuldb/ssvid-89723
2. WebLogic “Java 反序列化”過程遠(yuǎn)程命令執(zhí)行漏洞 https://www.sebug.net/vuldb/ssvid-89726
3. WebSphere “Java 反序列化”過程遠(yuǎn)程命令執(zhí)行漏洞 https://www.sebug.net/vuldb/ssvid-89727
4. 常見 Java Web 容器通用遠(yuǎn)程命令執(zhí)行漏洞 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
總結(jié)
以上是生活随笔為你收集整理的jenkins java反序列化_Jenkins “Java 反序列化”过程远程命令执行漏洞的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中week of year_Ja
- 下一篇: java sorted_Java记录 -