科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道服务器安全技术分析:JSP漏洞大观(4)

服务器安全技术分析:JSP漏洞大观(4)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

服务器漏洞是安全问题的起源,黑客对网站的攻击也大多是从查找对方的漏洞开始的。所以只有了解自身的漏洞,网站管理人员才能采取相应的对策,阻止外来的攻击。

作者:51CTO.COM 2007年10月30日

关键字: unix” Apache 服务器漏洞

  • 评论
  • 分享微博
  • 分享邮件

  如果在UNIX服务器上会出现"file not found"的错误信息。

  解决方案:点击此处下载补丁

  相关站点:http://www-4.ibm.com/software/webservers/appserv/efix.html

  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 是:

  1)FileServlet - for 简单 HTML 页面

  2)SSIServlet - for Server Side Includes 页面

  3)PageCompileServlet - for JHTML 页面

  4)JSPServlet - for Java Server 页面

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

  1)weblogic.httpd.register.file=weblogic.servlet.FileServlet

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

  3)weblogic.httpd.register.*.jhtml=weblogic.servlet.jhtmlc.PageCompileServlet

  4)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

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

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

  weblogic.httpd.register.12foo34=weblogic.servlet.FileServlet

  weblogic.httpd.initArgs.12foo34=defaultFilename=index.html

  weblogic.httpd.defaultServlet=12foo34

  (2)注册文件 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

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

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章