源代码泄漏而引发的JSP平安性_第1页
源代码泄漏而引发的JSP平安性_第2页
源代码泄漏而引发的JSP平安性_第3页
源代码泄漏而引发的JSP平安性_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要:在JSP技术取得普遍应用的同时,由于源代码泄漏而引发的JSP平安性也受到了普遍的关注。本文分析了几种造成源代码泄漏的因素,并针对每种因素提出了各自的解决方式。关键词:JSP源代码泄漏引言JSP编程语言自从推出之日起,由于它的快速、平台无关、可扩展、面向对象等特性取得了愈来愈普遍的应用,愈来愈多的厂家开发出了各类各样的支持平台如IBM公司的WebSphere、BEA公司的WebLogic等等,也有愈来愈多的网站开始将自己的平台架构在JSP环境中。可是随之而来的确实是一系列的平安问题,如源代码暴露漏洞、远程任意命令执行漏洞等等,一些用JSP做的网站,由于存在各类各样的漏洞,能够被黑客轻松的下

2、载程序的源代码,对网站的平安组成要挟。造成JSP源代码暴露的缘故效劳器漏洞是平安问题的起源,黑客对网站的解决也大多是从查找对方的漏洞开始的。因此只有了解自身的漏洞,网站治理人员才能采取相应的计谋,阻止外来的解决。尽管JSP也是一种web编程语言,可是它和其它的web编程语言如PHP、ASP的工作机制是不一样的。第一次挪用JSP文件实际上是执行一个编译为Servlet的进程。试图下载JSP源代码的人(比如黑客)往往利用JSP的各类漏洞,让JSP文件在编译前被阅读器看成一个文本或其它文件发送给客户端,或在JSP装载的时候不去执行编译好的Servlet而直接读JSP的内容并发送给客户端,从而让源代码

3、一览无余。JSP源代码泄漏的几种类型源代码暴露类别要紧指的是程序源代码会以明文的方式返回给访问者.咱们明白不管是JSP仍是ASP、PHP等动态程序都是在效劳器端执行的,执行后只会返回给访问者标准的html等代码。这是理论上的东西,实际运行起来由于效劳器内部机制的问题就有可能引发源代码暴露的漏洞,简单的例子是只要在程序文件名后加几个简单的字符就可能取得程序代码,如常见微软ASP的+.htr、$81等等漏洞。添加特殊后缀引发JSP源代码暴露在JSP中也存在着和asp这些漏涧类似的问题,如IBMWebsphereApplicationServer3.0.21、BEASystemsWeblogic、等

4、JSP文件后缀大写漏洞;JSP文件后加特殊字符如的%8二、漏洞:ServletExec的%2E、+漏洞、%2E、+、%2B、二C、$20、%00等。黑客若是利用该漏洞,将致使泄露指定的JSP文件的源代码。例一:利用下面的任意一个URL请求将输出指定的JSP文件的源代码:1)2)3)4)5)6) )5C7)8)a例二,在下,在阅读器中本来能够正常说明执行的是,可是若是将改成或等等碰运气,你会发觉阅读器会提示你下载那个文件,下载后源代码能够看个一干二净。缘故是JSP是大小写灵敏的,Tomcat只会将小写的JSP后缀的文件看成是正常的JSP文件来执行,若是大写了就会引发Tomcat将看成是一个能够下

5、载的文件让客户下载。老版本的WebLogic、WebShpere等都存在那个问题,此刻这些公司或发布了新版本或发布了补丁解决了这问题。3.1.1解决方法解决这种由于添加后缀引发的源代码泄漏有两种方式,一种方式是在效劳器软件的网站上下载补丁:另外一种方式是在效劳器设置中添加一些映射如.JSP、.Jsp、.jspME等,将他们映射到一个自己写的servlet,那个Servlet的唯一功能确实是将请求导向一个自概念的类似404notfound的犯错页而,不同的效劳器设置的地址也不同。若是没有利用任何静态页面或图像,能够配置一个默许的servlet,并将映射到那个默许的servleto如此当收到一个未

6、映射到某个servlet的URL时,那个默许的servlet就会被挪用。在这种情形下,默许的servlet能够仅仅返回未找到文件:若是利用了静态的页面或图像,仍然能够作如此的配置,可是需要让那个默许的servlet处置对合法的静态页面和图像的请求。另一种可能确实是将*.jsp+、*.jsp.和*.jsp等映射到一个servlet,而该servlet只是返回“未找到文件。关于*.jsp$00和*.jsp$20如此的情形,映射应以未经编码的形式输入。例如,关于*.jsp$20的映射应输入"*.jsp注意用20被转换成一个空格字符。3.2插入特殊字符串引发JSP源代码暴露插入特殊字符串引发

7、的漏洞有很多,例如BEAWebLogicEnterprise中,文件途径开头为yfiler的漏洞、IBMWebSphere3.0.2中"/servlet/file/”文件开头漏洞等等。若是在IBMWebSphere3.0.2中的一个请求文件的URL为"",那么,用户在访问时将看到那个文件的源代码。缘故是由于IBMWebSphere3.0.2是挪用不同的servlets对不同的页面进行处置,若是一个请求的文件是未进行注册治理的,WebSphere会利用一个默许的servlet挪用。若是文件途径以"/servlet/file/作开头那个默许的servlet会

8、被挪用那个请求的文件会未被分析或编译就显示出来。3.2.1解决方式在效劳器软件的网站下载最新的补丁。3.3途径权限引发的文件JSP源代码暴露这种漏洞在正常的JSP漏洞中没有反映出来,可是咱们明白,大部份的JSP应用程序在当前目录下都会有一个WEB-INF目录,那个目录通常寄存的是JavaBeans编译后的class文件,若是不给那个目录设置正常的权限,所有的class就会曝光。或许有人以为class是通过编译的,就算被下载也没有什么关系,可是此刻class反编译为java代码的软件也很多,采纳反编译软件对下载的class文件反编译后,和原始的java文件几乎一模一样,连变量名都没有变,还能够正

9、常利用。更大的平安问题是,有的软件开发人员把数据库的用户名密码都写在了java代码中,此刻一反编译谁都能看到数据库的重要信息。通过数据库的远程连接功能,能够轻松的进入到数据库中,所有信息将全数被他人把握。3.3.1解决方式有一个方式能够有效地解决由于途径权限引发的代码泄漏问题,确实是将ASP程序单独放置一个目录,设置该目录上的用户权限只能执行不能读取。在JSP环境下一样能够通过设置效劳器的环境来解决那个问题:将一些比较重要的目录如WEB-INF、classes等设置上访问的权限,不许诺读而取只许诺执行。以Apache下解决为例,能够在文件中添加一目录WEB-INF并设置Denyfromall等

10、属性。另一种解决方式确实是在每一个重要目录下添加一个默许起始页面如等,如此读取目录就会返回给访问者那个文件而不是其它了。相较较而言,建议采纳第一种方式。更为重要的是密码的保留问题,在ASP开发中,能够将密码文件保留在系统目录如WINNT下,然后用一个com来读取那个文件,如此就算看到了ASP源代码也不明白数据库信息了。在JSP中咱们也能够写一个property文件,放置在WINNT系统目录下,然后用Bean来读取数据库信息,如此通过源代码明白了数据库信息存在WINNT中的.property文件里而,但也很难访问它,如此就算源代码被人明白最少数据库是平安的。3. 4文件不存在引发的绝对途径暴露问

11、题那个问题此刻已经显现了很多,因为微软HS中也有比较多的类似问题,如微软中的*.ide暴露绝对途径漏洞。一样的这些问题此刻出此刻JSP环境中,那个漏洞暴露了web程序的绝对硬盘地址,和其他漏洞结合就具有比较大的危害了。例如:在特定的效劳器软件下,访问一个不存在的JSP文件如<,就会返回c:webapp(?)如此的错误,如此就能够够明白你网站在c:webapp目录下,或许一样人不太在意,可是关于一个黑客来讲足够了。缘故是由于负责JSP执行的相关Servlet中处置异样的时候没有过滤掉这种情形。3.4. 1解决方式关于因为文件不存在引发的绝对途径暴露问题,有两种解决方式。一种方式是下载最新的补丁。另一种方式是找到效劳器软件的JSP执行映射Servlet文件(固然是class后缀的),将它用软件反编译,在反编译后的源代码中找处处置Eception的方式,然后将方式中的处置部份全数注

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论