科技行者

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

知识库

知识库 安全导航

至顶网软件频道服务器安全技术分析:JSP漏洞大观

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

  • 扫一扫
    分享文章到微信

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

服务器漏洞是安全问题的起源,黑客对网站的攻击也大多是从查找对方的漏洞开始的。所以只有了解自身的漏洞,网站管理人员才能采取相应的对策,阻止外来的攻击。下面介绍一下一些服务器(包括Web服务器和JSP服务器)的常见漏洞。

作者:中国IT实验室 来源:中国IT实验室 2007年9月3日

关键字: 服务器 漏洞 JSP

  • 评论
  • 分享微博
  • 分享邮件
 综述:服务器漏洞是安全问题的起源,黑客对网站的攻击也大多是从查找对方的漏洞开始的。所以只有了解自身的漏洞,网站管理人员才能采取相应的对策,阻止外来的攻击。下面介绍一下一些服务器(包括Web服务器和JSP服务器)的常见漏洞。
  
  Apache泄露重写的任意文件漏洞是怎么回事?
  
  在Apache1.2以及以后的版本中存在一个mod_rewrite模块,它用来指定特殊URLS在网络服务器文件系统上所映射的绝对路径。如果传送一个包含正确表达参数的重写规则,攻击者就可以查看目标主机上的任意文件。
  
  下面举例说明重写规则指令(其中第一行只有是包含漏洞的):
  
  RewriteRule /test/(.*) /usr/local/data/test-stuff/$1
  
  RewriteRule /more-icons/(.*) /icons/$1
  
  RewriteRule /go/(.*) $1" target=_blank>http://www.apacheweek.com/$1
  
  受影响的系统:
  
  1)Apache 1.3.12
  
  2)Apache 1.3.11win32
  
  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 源代码文件。
  
  .
  
  %2E
  
  +
  
  %2B
  
  
  %5C
  
  %20
  
  %00
  
  成功的利用该漏洞将导致泄露指定的JSP文件的源代码,例如:使用下面的任意一个URL请求将输出指定的JSP文件的源代码:
  
  1)http://target/directory/jsp/file.jsp.
  
  2)http://target/directory/jsp/file.jsp%2E
  
  3)http://target/directory/jsp/file.jsp+
  
  4)http://target/directory/jsp/file.jsp%2B
  
  5)http://target/directory/jsp/file.jsp
  6)http://target/directory/jsp/file.jsp%5C
  
  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 98
  
  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分开对待,就不会泄露代码了。
  
  jsp
  
  *.jsp
  
  jsP
  
  *.jsP
  
   ?lt;servlet-name>jSp
  
  *.jSp
  
  jSP
  
  *.jSP
  
  Jsp
  
  *.Jsp
  
  JsP
  
  *.JsP
  
  JSp
  
  *.JSp
  
  JSP
  
  *.JSP
  
  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 Alpha
  
  Allaire patch jr233p_ASB00_28_29tar
  
  http://download.allaire.com/jrun/jr233p_ASB00_28_29.tar.gz
  
  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 ... /../../t est.jsp
  
  http://jrun:8000/servlet/com.livesoftware.jrun.pl ... ../../../../../boot.ini
  
  http://jrun:8000/servlet/com.livesoftware.jrun.plugi ... p;./../../../../winnt/repair/sam
  
  http://jrun:8000/servlet/ssifilter/../../test.jsp
  
  http://jrun:8000/servlet/ssifilter/& ... /../../boot.ini
  
  http://jrun:8000/servlet/ssifilter/../../. ... /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.zip
  
  Windows 95/98/NT/2000 and Windows NT Alpha
  
  Allaire patch jr233p_ASB00_28_29tar
  
  http://download.allaire.com/jrun/jr233p_ASB00_28_29.tar.gz
  
  UNIX/Linux patch - GNU gzip/tar
  
  Allaire JRUN 2.3远程执行任意命令漏洞
  
  Allaire 的 JRUN 服务器 2.3上存在一个安全漏洞,允许远程用户把在 WEB 服务器上的任意文件作为JSP代码编译/执行。 如果URL请求的目标文件使用了前缀"/servlet/",则JSP解释执行功能被激活。这时在用户请求的目标文件路径中使用"../",就有可能访问到 WEB 服务器上根目录以外的文件。在目标主机上利用该漏洞请求用户输入产生的一个文件,将严重威胁到目标主机系统的安全。
  
  例如:
  
  http://jrun:8000/servlet/com.livesoftware.jrun ... 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.zip
  
  Win
 

查看本文来源

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

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

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