| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 
课件制作网.
收藏本站
设为首页
安全365
JSP程序漏洞问题 两大类及其解决方案
JSP程序漏洞问题 两大类及其解决方案
作者:佚名 文章来源:不详 点击数: 更新时间:2007-1-25 10:55:12
一、源代码暴露类 

  1.添加特殊后缀引起 jsp源代码暴露 

  在jsp中也存在着和asp这些漏洞类似的问题,如IBM Websphere Application Server 3.0.21 、BEA Systems Weblogic 4.5.1、Tomcat3.1等jsp文件后缀大写漏洞;jsp 文件后加特殊字符如Resin1.2的%82、../漏洞;ServletExec的%2E、+漏洞等等。 

  例子:举个老一点的JSP大写例子,Tomcat3.1下在浏览器中本来是http://localhost:8080/inde.jsp,可以正常解释执行,但是如果将 inde.jsp改为inde.JSP或者inde.Jsp等等试试看,你会发现浏览器会提示你下载这个 
文件,下载后源代码可以看个一乾二净。
原因:jsp是大小写敏感的,Tomcat只会将小写的jsp后缀的文件当作是正常的jsp文件来执行,如果大写了就会引起Tomcat将 index.JSP当作是一个可以下载的文件让客户下载。老版本的WebLogic、WebShpere等都存在这个问题,现在这些公司或者发布了新版本或者发布了补丁解决了这问题。 

  解决办法:一是在服务器软件的网站上下载补丁;因为作者以前用过asp 一段时间,接触了很多IIS的漏洞,它的有效解决方法是去掉不必要的映像如htr、htx等,在jsp 中我们同样可以参考IIS的解决方法,不同的是不是去掉而是添加映像,方法为在服务器设置中添加一些映像如.JSP 、.Jsp、.jsp%2E等,将他们映像到一个自己写的servlet,这个Servlet的唯一功能就是将请求导向一个自定义的类似404 not found的出错页面,不同的服务器设置的地方也不同,请参考相应的文档。第二种解决方法可以在没有补丁的时候采用。 

  2.插入特殊字符串引起jsp源代码暴露 

  还有一种是插入特殊字符串引起的漏洞,BEA WebLogic Enterprise 5.1文件路径开头为 "/file/" 的漏洞、IBM WebSphere 3.0.2的"/servlet/file/"文件开头漏洞等等。 

  例子:如IBM WebSphere 3.0.2中,如果一个请求文件的 URL为"login.jsp":http://site.running.websphere/login.jsp,那么访问http: //site.running.websphere/servlet/file/login.jsp将看到这个文件的源代码。
原因:因为IBM WebSphere 3.0.2是调用不同的 servlets 对不同的页面进行处理,如果一个请求的文件是未进行注册管理的,WebSphere 会使用一个默认的 servlet 调用。如果文件路径以"/servlet/file/"作开头这个默认的 servlet 会被调用这个请求的文件会未被分析或编译就显示出来。 

  解决方法:在服务器软件的网站下载最新的补丁。 

  3.路径权限引起的文件jsp源代码暴露 

  我们知道,大部分的jsp应用程序在当前目录下都会有一个WEB-INF目录,这个目录通常存放的是JavaBeans编译后的class 文件,如果不给这个目录设置正常的权限,所有的class就会曝光。 

  例子:如果采用的是Apache1.3.12加上第三方jsp软件形式的WEB服务器,因为Apache1.3.12默认的设置是可以读取目录的,如果程序在http://site.running.websphere/login.jsp,只要修改一下http: //site.running.websphere/WEB-INF/所有这个目录下以及这个目录下的子目录中的class文件可以看个一乾二净的,还可以下载到本机上。 

  也许有人会说class是经过编译的,就算被人下载也没有什么关系,但是现在class 反编译为Java代码的软件也很多,有人曾经采用JAD软件对下载的class文件反编译了一下,居然和原始的Java文件几乎一模一样,变量名都没有变,更惊奇的是还可以重新编译为class文件正常使用。 

  安全问题更大的就是,网页制作者开始把数据库的用户名密码都写在了Java代码中,现在一反编译谁都能看到数据库的重要信息。通过数据库的远程连接功能,可以轻松的进入到你的数据库中,所有信息全部在他手中。附带说一句,如果用户能获得 SQL Server的用户名口令,进入数据库中可以执行任意的dos命令如查看c:/文件、建立和删除目录等,那样整个Windows系统都不安全了。 

  解决方法:IIS以前一个有效地解决asp漏洞的方法,就是将asp程序单独放置一个目录,目录设置上用户权限只能执行不能读取。在jsp环境下同样可以通过设置服务器的环境来解决这个问题,简单的说,就是将一些比较重要的目录如WEB-INF、classes等设置上访问的权限,不允许读而取只允许执行。以apache 下解决为例,可以在httpd.conf文件中添加一目录WEB-INF并设置Deny from all等属性。 

  另一种比较笨的解决方法就是在每个重要目录下添加一个默认起始页面如index.htm等,这样读取目录就会返回给访问者这个文件而不是其它了。建议采用的一种方法。 

  更为重要的是密码的保存问题。在jsp中可以写一个property文件,放置在WINNT系统目录下,然后用Bean来读取数据库信息,这样通过源代码知道了数据库信息存在WINNT中的.property文件?堶情A但也很难访问它,这样就算源代码被人知道起码数据库是安全的。 

  4.文件不存在引起的绝对路径暴露问题这个问题相信大家都比较熟悉了,因为微软IIS 中也有比较多的类似问题。如微软IIS5.0中的*.idc暴露绝对路径漏洞。同样的这些问题现在也转到了jsp环境中,这个漏洞暴露了web程序的绝对硬盘地址,和其它漏洞结合就具有比较大的危害了
例子:在特定的服务器软件下,访问一个不存在的jsp文件如 http://localhost:8080/fdasfas.jsp,就会返回Java.servlet.ServletEception: Java.io.FileNotFoundEception: c:/web/app/fadssad.jsp (???????????)这样的错误,这样就可以知道网站在c:/web/app目录下,也许一般人不太在意,但是对于一个黑客来说就是很有帮助了。 

  原因:负责jsp 执行的相关Servlet中处理异常的时候没有过滤掉这种情况。 

  解决方法:一是下载最新的补丁;如果当时的web 服务器软件没有这个补丁,可以找到服务器软件的jsp 执行映像Servlet文件(当然是class 后缀的),将它用JAD软件反编译,在反编译后的源代码中找到处理Exception的方法,然后将方法中的处理部分全部注释掉,并将请求导向到一个自定义的出错页面中,这样问题就解决了。 

  二、远程程序执行类 

  这类漏洞的特点就是可以通过url 地址在浏览器中执行任意服务器上的命令和程序,从而引起安全问题。如Allaire JRUN 2.3 远程执行任意命令漏洞、iPlanet Web Server 4.x存在一个缓冲区溢出漏洞等等。 

  例子:Allaire 的 JRUN 服务器 2.3上输入下面的url地址http://jrun:8000/servlet/jsp/../../path/sample.txt,可以访问到WEB目录以外的文件,如果是exe文件,还有可能会引起执行。 

  原因:如果URL请求的目标文件使用了前缀"/servlet/",则JSP 解释执行功能被激活。这时在用户请求的目标文件路径中使用"../",就有可能访问到 WEB 服务器上根目录以外的文件。目标主机上利用该漏洞请求用户输入产生的一个文件,将严重威胁到目标主机系统的安全。 

  解决方法:安装最新的补丁。 

  把这个老帖子翻出来的原因,是据说Tomcat 5.0.19 Windows又出现大写暴露源代码的问题了,有兴趣的朋友可是试看看,如果是真的,那tomcat那帮家伙又在老地方摔了一交。【转自世纪安全网 http://www.21safe.com】
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
     
     
    PHP HTMLEntities和HTML
    PHP HTMLEntities和HTML
    Kaspersky Labs Anti-Vi
    Microsoft ASP.NET Auto
    Hotmail/MSN insite.asp
    All Topics phpBB模块SQ
    Web3news PHPSECURITYAD
    CyBoards PHP Lite comm
    Kaspersky安全软件发布6
    一个查ASP木马的小东东

    Copyright © 2006-2008 www.anquan365.com 安全365
    建议使用1024*768分辨率及第三方浏览器对本站进行浏览