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 目錄文件

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

再次查看服務器上 /tmp 目錄下文件

服務端在反序列化惡意構造的數據時導致命令執行,在 /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
總結
以上是生活随笔為你收集整理的jenkins java反序列化_Jenkins “Java 反序列化”过程远程命令执行漏洞的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中week of year_Ja
- 下一篇: java sorted_Java记录 -