快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

BEA WebLogic 暴露源代码漏洞

涉及程序:
BEA WebLogic Server and Express 5.1.x/4.5x/4.0x/3.1.8

描述:
BEA WebLogic 暴露源代码漏洞

具体:
受影响版本
所有系统上的
BEA WebLogic Enterprise 5.1.x
BEA WebLogic Server and Express 5.1.x
BEA WebLogic Server and Express 4.5.x
BEA WebLogic Server and Express 4.0.x
BEA WebLogic Server and Express 3.1.8

这个漏洞使攻击者能读取 Web 目录下所有文件的源代码。
WebLogic 依靠四个主要 Java Servlets to 服务不同类型的文件。这些 servlets 是:

FileServlet - for 简朴 HTML 页面
SSIServlet - for Server Side Includes 页面
PageCompileServlet - for JHTML 页面
JSPServlet - for Java Server 页面

看着weblogic.properties 文件, 这儿是各个 servlets 的注册值 :

weblogic.httpd.register.file=weblogic.servlet.FileServlet
weblogic.httpd.register.*.shtml=weblogic.servlet.ServerSideIncludeServlet
weblogic.httpd.register.*.jhtml=weblogic.servlet.jhtmlc.PageCompileServlet
weblogic.httpd.register.*.jsp=weblogic.servlet.JSPServlet

更多的 weblogic.properties 文件, 假如一个哀求文件是没有注册治理的,那么就会调用一个默认的 servlet 。以下是展示默认的 servlet 是如何注册的。

# Default servlet registration
# ------------------------------------------------
# Virtual name of the default servlet if no matching servlet
# is found weblogic.httpd.defaultServlet=file

因此假如 URL 中的文件路径开头为 "/file/" , 将会引致 WebLogic 调用默认的 servlet, 那将会使网页未加分析和编译而直接显示。

论证:
只要在想看的文件原来的 URL 路径之前加入 "/file/" 就会让文件未经分析和编译,直接暴露源代码。如:

http://site.running.weblogic/login.jsp

那么只要访问

http://site.running.weblogic/file/login.jsp

就会在 WEB 浏览器里看到文件的内容。

以下是使用方式:
1. 通过强制使用 SSIServlet 查看未分析的页面 :
----------------------------------------------------------
服务器站点通过 WebLogic 中的 SSIServlet 处理页面,它在 weblogic.properties 文件中注册以下信息:

weblogic.httpd.register.*.shtml=
weblogic.servlet.ServerSideIncludeServlet

通过 URL 使用 SSIServlet 自动处理通配符 (*) 。因此 假如文件路径开头为 /*.shtml/,将强制文件由 SSIServlet 处理。假如使用其它文件类型如 .jsp 和 .jhtml, 就能查看未分析的 jsp 和 jhtml 代码。举例:
http://www.xxx.com/*.shtml/login.jsp

2. 通过强制使用 FileServlet 查看未分析的页面 :
-----------------------------------------------------------
WebLogic 使用 FileServlet 配置 ConsoleHelp servlet ,在 weblogic.properties 文件的以下内容可得知:

# For Console help. Do not modify.
weblogic.httpd.register.ConsoleHelp=
weblogic.servlet.FileServlet
weblogic.httpd.initArgs.ConsoleHelp=
defaultFilename=/weblogic/admin/help/NoContent.html
weblogic.allow.execute.weblogic.servlet.ConsoleHelp=everyone

因此假如文件路径以 /ConsoleHelp/ 开头将导致 WebLogic 使用 FileServlet,使未分析或编译的文件作页面显示出来,举例:
http://www.xxx.com/ConsoleHelp/login.jsp

解决方案:
不要使用示例中的设置方式设置 FileServlet 。这可能会让你的 JSP/JHTML 文件的源代码暴露出来。请查看在线文档:

http://www.weblogic.com/docs51/admindocs/http.html#file

示例的 registrations 如下:

weblogic.httpd.register.file=weblogic.servlet.FileServlet
weblogic.httpd.initArgs.file=defaultFilename=index.html
weblogic.httpd.defaultServlet=file

有两种方式可以避免这个问题:

* 注册那些文件 servlet 使用随机用户名,加大预测难度。例如使用象这样注册文件 servlet 为 12foo34:

weblogic.httpd.register.12foo34=weblogic.servlet.FileServlet
weblogic.httpd.initArgs.12foo34=defaultFilename=index.html
weblogic.httpd.defaultServlet=12foo34

* 注册文件 servlet 使用 wild cards 声明你将使用所有这些文件扩展名作服务。举例注册文件 servlet 为 .html 文件服务:

weblogic.httpd.register.*.html=weblogic.servlet.FileServlet
weblogic.httpd.initArgs.*.html=defaultFilename=index.html
weblogic.httpd.defaultServlet=*.html

使用上面的方式重复加入以下类型的文件 *.gif, *.jpg, *.pdf, *.txt, etc.

注重:这些信息是备有证实在 BEA WebLogic Server and Express 说明档的:

http://www.weblogic.com/docs51/admindocs/lockdown.html

另:请注意新版本并升级吧。


返回类别: 教程
上一教程: 也谈用JSP实现新郎、sohu新闻系统的技术。
下一教程: 在Windows 2000下搭建jsp环境

您可以阅读与"BEA WebLogic 暴露源代码漏洞"相关的教程:
· IBM WebSphere Application Server 3.0.2 存在暴露源代码漏洞
· 多中WEB服务器的通用JSp源代码暴露漏洞
· IBM WebSphere源代码暴露漏洞 
· Unify eWave ServletExec 泄露jsp源代码漏洞 
· Borland加强对开放源代码平台Eclipse支持
    微笑服务 优质保证 索取样品