前言
在測試某反序列化漏洞,可以通過URLDNS鏈確定漏洞是否存在但在利用時遇到了困難,相關利用鏈可以執行系統命令卻無法得到回顯。
因此需要在此基礎修改利用鏈達到命令回顯得目的,下邊記錄的即是此次修改的過程。
Java反序列化回顯方法
根據搜索到的資料給出的常見回顯方法有以下幾種:1、報錯回顯:要求服務器將報錯信息打印到頁面。2、寫文件:把執行結果寫入靜態文件置于web目錄下再讀取結果。3、DNSLOG回顯:通過DNSLOG將執行結果帶出(未實現)。4、中間件回顯:獲取response對象,結果寫入response對象中帶出。5、.....
報錯回顯
此法要求服務器將報錯信息打印出來,修改要反序列化執行的Java代碼將結果寫入異常再拋出即可實現。
寫文件回顯
同樣修改yso中Gadgets要執行的java代碼即可實現,通過將執行結果寫入web目錄下的靜態文件再讀取來實現。此法的缺點是當目標不存在可訪問靜態web目錄便無法使用了且要獲取web目錄的絕對路徑,更適用于已知開發框架的反序列化漏洞利用。
DNSLOG
一般作為檢測反序列化漏洞是否存在用,貼出URLDNS Gadget的驗證過程。
中間件回顯
中間件回顯是目前所有反序列化工具中最為通用的方法,相比于上述的方法中間件回顯有不需目標出網、沒有目錄限制等優勢。中間件回顯的原理簡單來說是在運行的中間件中獲取request&response對象,通過request對象獲取執行參數等后將執行結果寫入response對象帶出完成回顯。已知目標中間件為tomcat,參考feihong師傅公開的tomcat全版本回顯測試代碼來修改yso代碼實現利用。Tomcat回顯代碼:
修改yso payload代碼:
修改yso Gadgets代碼:
實現回顯:
總結
由于本菜雞學習Java的路程不是很系統,在很多地方卡殼嚴重,還好最終實現了相關exp的編寫。最后,感謝文中所用代碼和知識的作者師傅們。
審核編輯 :李倩
-
JAVA
+關注
關注
19文章
2972瀏覽量
104870 -
代碼
+關注
關注
30文章
4803瀏覽量
68756 -
漏洞
+關注
關注
0文章
204瀏覽量
15397
原文標題:參考
文章出處:【微信號:Tide安全團隊,微信公眾號:Tide安全團隊】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論