AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > JSP

JSP安全性初探

51自学网 http://www.51zixue.net



  一、源代码暴露类 

  源代码暴露类别主要指的是程序源代码会以明文的方式返回给访问者。
  我们知道不管是jsp还是asp、php等动态程序都是在服务器端执行的,执行后只会返回给访问者标准的html 等代码。这是理论上的东西,实际运行起来由于服务器内部机制的问题就有可能引起源代码暴露的漏洞,简单的例子只要在程序文件名后加几个简单的字符就可能获得程序代码,如常见微软asp 的global.asa+.htr、XXXX.asp%81等等漏洞。

  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 会被调用这个请求的文件会未被分析或编译就显示出来。

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

 
 

上一篇:jsp安全问题及其解决建议  下一篇:jsp连接数据库大全