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