6赞
1010
当前位置:  开发笔记 > 编程语言 > 正文

JSP漏洞大观

JSP漏洞大观
综述:服务器漏洞是安全问题的起源,黑客对网站的攻击也大多是从查找对方的漏洞开始的。所以只有了解自身的漏洞,网站管理人员才能采取相应的对策,阻止外来的攻击。下面介绍一下一些服务器(包括Web服务器和JSP服务器)的常见漏洞。 >
  Apache泄露重写的任意文件漏洞是怎么回事?

>
  在Apache1.2以及以后的版本中存在一个mod_rewrite模块,它用来指定特殊URLS在网络服务器文件系统上所映射的绝对路径。如果传送一个包含正确表达参数的重写规则,攻击者就可以查看目标主机上的任意文件。
>
  下面举例说明重写规则指令(其中第一行只有是包含漏洞的):
>
  RewriteRule /test/(.*) /usr/local/data/test-stuff/$1
  RewriteRule /more-icons/(.*) /icons/$

1
  RewriteRule /go/(.*) http://www.apacheweek.com/$1
>
  受影响的系统:
>
  1)Apache 1.3.12
  2)Apache 1.3.11win3

2
  3)Apache 1.2.x
>
  不受影响系统:Apache 1.3.13
>
  怎样解决在HTTP请求中添加特殊字符导致暴露JSP源代码文件?
  Unify eWave ServletExec 是一个 Java/Java Servlet 引擎插件,主要用于 WEB 服务器,例如:Microsoft IIS, Apache, Netscape Enterprise 服务器等等


  当一个 HTTP 请求中添加下列字符之一,ServletExec 将返回 JSP 源代码文件。
.




  %2

E
  

+
  %2B
  

\
  %5C
  %2

0
  %00  

  成功的利用该漏洞将导致泄露指定的JSP文件的源代码,例如:使用下面的任意一个URL请求将输出指定的JSP文件的源代码:
>
  1)http://target/directory/jsp/file.jsp.
  2)http://target/directory/jsp/file.jsp%2

E
  3)http://target/directory/jsp/file.jsp+
  4)http://target/directory/jsp/file.jsp%2

B
  5)http://target/directory/jsp/file.jsp\
  6)http://target/directory/jsp/file.jsp%5

C
  7)http://target/directory/jsp/file.jsp%20
  8)http://target/directory/jsp/file.jsp%00
>


  受影响的系统:
>
  1)Unify eWave ServletExec 3.0c
  2)Sun Solaris 8.

0
  3)Microsoft Windows 9
8
  4)Microsoft Windows NT 4.
0
  5)Microsoft Windows NT 2000
  6)Linux kernel 2.3.

x
  7)IBM AIX 4.3.


2
  8)HP HP-UX 11.4
>
  解决方案:

  如果没有使用任何静态页面或图像,可以配置一个默认的 servlet,并将"/"映射到这个默认的 servlet。这样当收到一个未映射到某个 servlet 的 URL 时,这个默认的servlet 就会被调用。在这种情况下,默认的 servlet 可以仅仅返回"未找到文件"。如果使用了静态的页面或图像,仍然可以作这样的配置,但是需要让这个默认的servlet 处理对合法的静态页面和图像的请求。
  另一种可能就是将*.jsp+、*.jsp.和*.jsp\等映射到一个 servlet,而该servlet只是返回"未找到文件"。对于*.jsp%00和*.jsp%20这样的情况,映射应以未经编码的形式输入。例如,对于*.jsp%20的映射应输入"*.jsp "。注意%20被转换成一个空格字符。




  Tomcat有哪些漏洞?
>
  Tomcat 3.1 存在暴露网站路径问题
>
  Tomcat 3.1 是在 Apache 软件环境下开发的一个支持 JSP 1.1 和 Servlets 2.2 的软件。它存在一个安全问题当发送一个不存在的 jsp 请求时会暴露网站上网页的全路径。

>
  举例:
  http://narco.guerrilla.sucks.co:8080/anything.jsp
>
  结果显示


Error: 404
Location: /anything.jsp

JSP file "/appsrv2/jakarta-tomcat/webapps/ROOT/anything.jsp" not found

  解决方案:升级到新版本

>
  Tomcat 暴露JSP文件内容


  Java Server Pages (JSP)类型的文件是以'.jsp'扩展名在Tomcat 上注册,Tomcat 是文件名大小写敏感的,'.jsp'和'.JSP'是不同类型的文件扩展名。如果提交有'.JSP'的链接给Tomcat,而Tomcat找不到'.JSP'就会以默认的'.text'文件类型来响应请求。因为在NT系统中大小写文件名是非敏感的,所以被请求的文件会以文本的形式送出。
>
  如果在UNIX服务器上会出现"file not found"的错误信息。
>
  如何在windows下对Tomcat实施代码保护
>
  Tomcat的一些版本有泄露源代码的漏洞,如果在浏览器中调用JSP页面时将该文件的后缀改成大写,这个JSP文件的源代码将完全输出到浏览器中(也许浏览器窗口中什么都没有,这时你只需查看HTML源文件就可以发现)。如此一来,网站的源代码是不是都会暴露在互联网上那?
  不用担心,解决方法很简单,把各种后缀的组合全部写到Tomcat_Home\conf \web.xml里就可以了,这样Tomcat会将不同后缀名的JSP分开对待,就不会泄露代码了






    js
p
    *.j


s
p


>
    jsP
    *.jsP


>

   ?lt;servlet-name>

j
S
p
    *.jS

>
p
>
    jSP
    *.

j
S
P

>

    Jsp
    *.Js

>
p


    JsP
    *.JsP
>

    JSp
    *.JSp


    JSP
    *.JS
P


  Allair Jrun漏洞有哪些漏洞?

  Allair JRUN 非法读取 WEB-INF 漏洞
  在Allaire 的 JRUN 服务器 2.3版本中存在一个严重的安全漏洞。它允许一个攻击者在 JRun 3.0 服务器中查看 WEB-INF 目录。
  如果用户在提交 URL 请求时在,通过附加一个"/"使该 URL 成为畸形的 URL,这时 WEB-INF 下的所有子目录将会暴露出来。攻击者巧妙的利用该漏洞将能够远程获得目标主机系统中 WEB-INF 目录下的所有文件的读取权限


  例如使用下面这个 URL 将会暴露 WEB-INF 下的所有文件:
http://site.running.jrun:8100//WEB-INF/
>


  受影响的系统:Allaire JRun 3.0
>
  解决方案:下载并安装补丁:

>
Allaire patch jr233p_ASB00_28_29
http://download.allaire.com/jrun/jr233p_ASB00_28_29.zip
Windows 95/98/NT/2000 and Windows NT Alp

h
a
Allaire patch jr233p_ASB00_28_29tar
http://download.allaire.com/jrun/jr233p_ASB00_28_29.tar.g
>
z
UNIX/Linux patch - GNU gzip/tar  
>
  Allaire JRUN 2.3 查看任意文件漏洞

  Allaire 的 JRUN 服务器 2.3上存在多重显示代码漏洞。该漏洞允许攻击者在 WEB 服务器上查看根目录下的任意文件的源代码。
  JRun 2.3 使用 Java Servlets 解析各种各样类型的页面(例如:HTML, JSP等等)。基于rules.properties 和 servlets.properties 的文件设置,可能利用URL前缀"/servlet/"调用任何servlet


  它可能使用 Jrun 的 SSIFilter servlet 在目标系统上检索任意的文件。下列 2 个例子显示出能被用来检索任意的文件的 URLs :
>
http://jrun:8000/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../t est.jsp
http://jrun:8000/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../../../../../../boot.ini


http://jrun:8000/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../. ./../../../../winnt/repair/sam
http://jrun:8000/servlet/ssifilter/../../test.jsp


http://jrun:8000/servlet/ssifilter/../../../../../../../boot.ini
http://jrun:8000/servlet/ssifilter/../../../../../../../winnt/repair/sam._  
>
;

  注意:假设JRun在主机" jrun "上运行,端口8000。


>
  受影响的系统:Allaire JRun 2.3.x
>
  解决方案:下载并安装补丁: >
Allaire patch jr233p_ASB00_28_29
http://download.allaire.com/jrun/jr233p_ASB00_28_29.zi

p
Windows 95/98/NT/2000 and Windows NT Alpha
Allaire patch jr233p_ASB00_28_29ta

r
http://download.allaire.com/jrun/jr233p_ASB00_28_29.tar.gz
UNIX/Linux patch - GNU gzip/ta
>
r


  Allaire JRUN 2.3远程执行任意命令漏洞

  Allaire 的 JRUN 服务器 2.3上存在一个安全漏洞,允许远程用户把在 WEB 服务器上的任意文件作为JSP代码编译/执行。   如果URL请求的目标文件使用了前缀"/servlet/",则JSP解释执行功能被激活。这时在用户请求的目标文件路径中使用"../",就有可能访问到 WEB 服务器上根目录以外的文件。在目标主机上利用该漏洞请求用户输入产生的一个文件,将严重威胁到目标主机系统的安全。
>
>
  例如:

http://jrun:8000/servlet/com.livesoftware.jrun.plugins.jsp.JSP/../../path/to /temp.txt
http://jrun:8000/servlet/jsp/../../path/to/temp.txt
>


  受影响的系统:Allaire JRun 2.3.x
>
  解决方案:下载并安装补丁: >
>
Allaire patch jr233p_ASB00_28_29
http://download.allaire.com/jrun/jr233p_ASB00_28_29.zi

p
Windows 95/98/NT/2000 and Windows NT Alpha
Allaire patch jr233p_ASB00_28_29ta

r
http://download.allaire.com/jrun/jr233p_ASB00_28_29.tar.gz
UNIX/Linux patch - GNU gzip/tar &nbs
>
p
;

  JRun 2.3.x 范例文件暴露站点安全信息

  JRun 2.3.x 在 JRUN_HOME/servlets 目录下有一些 servlet 范例文件,这个目录是 JRun 2.3.x 用于加载和执行 servlets 文件。所有扩展名为 ".Java" 或 "class" 的文件必须被删除,这是因为这些文件会暴露站点的安全信息。例如:
http://www.xxx.xxx/servlet/SessionServlet 会暴露当前服务器保持的HTTP连接信息。JRUN_HOME/jsm-default/services/jws/htdocs 目录下的内容也应被删除掉。这个目录保存有演示服务器功能的 '.jsp' 文件,其中一些文件牵涉到访问服务器文件系统和暴露服务器设置的问题。例如对文件 "viewsource.jsp" 的路径检查是默认关闭的,它可被用于访问服务器文件系统。
>




  解决方案: >
  1)安装 2.3.3 service pack
  2)从服务器上删除所有的说明文档、演示编码、范例和教材,包括安装 JRun   2.3.x 时存放于 JRUN_HOME/servlets 目录和JRUN_HOME/jsm-default/services/jws/htdocs 目录里的文档。
  相关站点:http://www.allaire.com/
>


  IBM WebSphere Application Server有哪些漏洞?
>
  1、IBM WebSphere Application Server 3.0.2 存在暴露源代码漏洞
IBM WebSphere Application Server 允许攻击者查看 Web server 根目录以上的所有文件。IBM WebSphere 使用 Java Servlets 处理多种页面类型的分析(如 HTML, JSP, JHTML, 等等)。In addition 不同的 servlets 对不同的页面进行处理,如果一个请求的文件是未进行注册管理的,WebSphere 会使用一个默认的 servlet 作调用。如果文件路径以"/servlet/file/"作开头这个默认的 servlet 会被调用这个请求的文件会未被分析或编译就显示出来。
>


  受影响系统:IBM WebSphere 3.0.2 的所有版本
>
>
  举例:

  如果一个请求文件的 URL 为 "login.jsp"::  http://site.running.websphere/login.jsp那么访问  http://site.running.websphere/servlet/file/login.jsp将看到这个文件的源代码。
  解决方案:下载并安装补


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

/
  IBM WebSphere Application Server 暴露JSP文件内容
  Java Server Pages (JSP)类型的文件是以'.jsp'扩展名在WebSphere Application Serve 上注册,WebSphere 是文件名大小写敏感的,'.jsp'和'.JSP'是不同类型的文件扩展名。如果提交有'.JSP'的链接给WebSphere,而WebSphere找不到'.JSP'就会以默认的'.text'文件类型来响应请求。因为在NT系统中大小写文件名是非敏感的,所以被请求的文件会以文本的形式送出
>


  如果在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 &nbs
p
;

  因此如果 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
  另:请留意新版本并升级吧。




推荐阅读
  • 云备份的作用:1、可以把手机里的通讯录、短信、应用程序等备份起来;2、当手机升级系统、刷机、换手机后,数据都还能恢复到手机;3、可以在急需与错误操作的时候恢复相关数据。 ... [详细]
  • output接口是指输出接口,指切换器的输出接口方式,一般为BNC插头或复合视频接口;对于矩阵切换器,因为它是将多种信号源选择两种或两种以上输出给不同的显示设备,所以矩阵切换器是多输入接口和多输出接口的。 ... [详细]
  • 微信小程序Nginx环境配置详细介绍, ... [详细]
  • 这篇文章主要为大家详细介绍了java开发微信发送给朋友和分享到朋友圈功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ... [详细]
  • 本文主要介绍了C#微信开发之接收返回文本消息原理与实现方法,具有一定的参考价值,下面跟着小编一起来看下吧 ... [详细]
  • 一、初始微信公众平台微信公众平台,即我们平时所说的“公众号”,曾用名“官方平台”、“媒体平台”,但最终命名为“公众平台”。从微信的命名我可以发现,公众平台不只是官方、媒体使用的平台,而是对所有公众都开放的统一平台。微信公众平台地址:https:mp.weixin.qq.com微信公众平台公分4大板块:订阅号、服务号、小程序、企业号。按照微信2016年公开课规划,企业号后续将与企业 ... [详细]
  • 为什么需要websocket?传统的实时交互的游戏,或服务器主动发送消息的行为(如推送服务),如果想做在微信上,可能你会使用轮询的方式进行,不过这太消耗资源,大量的请 ... [详细]
  • 在小程序中接入支付功能首先要申请微信支付,小程序认证以后,可以在小程序后台,微信支付菜单栏,申请微信支付。 ... [详细]
  • 本篇文章给大家介绍一下workerman,以及谈谈workerman中worker类的用法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 ... [详细]
  • Linux的英式读音是“[lɪnəks]”,美式读音是“[ˈlinʊks]”,中式发音是“丽娜克斯”和“李扭克斯”。 ... [详细]
devbox
劲吻2502877607
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有 京ICP备19059560号-4