仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1011|回复: 7
打印 上一主题 下一主题

[学习教程] JAVA网站制作之服务器平安手艺剖析:JSP毛病年夜不雅

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:11:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Java编译的是字节码,跟C++相反,启动不够快,效率不够高,难以精确控制内存,但是优点是编程比C++容易,代码比较安全但是容易留下性能隐患,跨平台靠字节码在各个平台复制(一处编译到处调试)js|平安|服务器  综述:服务器毛病是平安成绩的劈头,黑客对网站的打击也年夜多是从查找对方的毛病入手下手的。以是只要懂得本身的毛病,网站办理职员才干接纳响应的对策,制止外来的打击。上面先容一下一些服务器(包含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)Apache1.3.12

2)Apache1.3.11win32

3)Apache1.2.x

不受影响体系:Apache1.3.13

如何办理在HTTP哀求中增加特别字符招致表露JSP源代码文件?

UnifyeWaveServletExec是一个Java/JavaServlet引擎插件,次要用于WEB服务器,比方:MicrosoftIIS,Apache,NetscapeEnterprise服务器等等。

当一个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)UnifyeWaveServletExec3.0c

2)SunSolaris8.0

3)MicrosoftWindows98

4)MicrosoftWindowsNT4.0

5)MicrosoftWindowsNT2000

6)Linuxkernel2.3.x

7)IBMAIX4.3.2

8)HPHP-UX11.4

办理计划:

假如没有利用任何静态页面或图象,能够设置一个默许的servlet,并将"/"映照到这个默许的servlet。如许当收到一个未映照到某个servlet的URL时,这个默许的servlet就会被挪用。在这类情形下,默许的servlet能够仅仅前往"未找到文件"。假如利用了静态的页面或图象,仍旧能够作如许的设置,可是必要让这个默许的servlet处置对正当的静态页面和图象的哀求。

另外一种大概就是将*.jsp+、*.jsp.和*.jsp等映照到一个servlet,而该servlet只是前往"未找到文件"。关于*.jsp%00和*.jsp%20如许的情形,映照应以未经编码的情势输出。比方,关于*.jsp%20的映照应输出"*.jsp"。注重%20被转换成一个空格字符。

Tomcat有哪些毛病?

Tomcat3.1存在表露网站路径成绩

Tomcat3.1是在Apache软件情况下开辟的一个撑持JSP1.1和Servlets2.2的软件。它存在一个平安成绩当发送一个不存在的jsp哀求时会表露网站上彀页的全路径。

举例:

http://narco.guerrilla.sucks.co:8080/anything.jsp

了局显现:

Error:404

Location:/anything.jsp

JSPfile"/appsrv2/jakarta-tomcat/webapps/ROOT/anything.jsp"notfound

办理计划:晋级到新版本

Tomcat表露JSP文件内容

JavaServerPages(JSP)范例的文件是以.jsp扩大名在Tomcat上注册,Tomcat是文件名巨细写敏感的,.jsp和.JSP是分歧范例的文件扩大名。假如提交有.JSP的链接给Tomcat,而Tomcat找不到.JSP就会以默许的.text文件范例来呼应哀求。由于在NT体系中巨细写文件名长短敏感的,以是被哀求的文件会以文本的情势送出。

假如在UNIX服务器上会呈现"filenotfound"的毛病信息。

怎样在windows下对Tomcat实行代码回护

Tomcat的一些版本有保守源代码的毛病,假如在扫瞄器中挪用JSP页面时将该文件的后缀改成年夜写,这个JSP文件的源代码将完整输入到扫瞄器中(大概扫瞄器窗口中甚么都没有,这时候你只需检察HTML源文件就能够发明)。云云一来,网站的源代码是否是城市表露在互联网上那?

不必忧虑,办理办法很复杂,把各类后缀的组合全体写到Tomcat_Homeconfweb.xml里就能够了,如许Tomcat会将分歧后缀名的JSP分隔看待,就不会保守代码了。

jsp

*.jsp

jsP

*.jsP

 ?lt;servlet-name>jSp

*.jSp

jSP

*.jSP

Jsp

*.Jsp

JsP

*.JsP

JSp

*.JSp

JSP

*.JSP

AllairJrun毛病有哪些毛病?

AllairJRUN不法读取WEB-INF毛病

在Allaire的JRUN服务器2.3版本中存在一个严峻的平安毛病。它同意一个打击者在JRun3.0服务器中检察WEB-INF目次。

假如用户在提交URL哀求时在,经由过程附加一个"/"使该URL成为畸形的URL,这时候WEB-INF下的一切子目次将会表露出来。打击者奇妙的使用该毛病将可以远程取得方针主机体系中WEB-INF目次下的一切文件的读取权限。

比方利用上面这个URL将会表露WEB-INF下的一切文件:

http://site.running.jrun:8100//WEB-INF/

受影响的体系:AllaireJRun3.0

办理计划:下载并安装补钉:

Allairepatchjr233p_ASB00_28_29

http://download.allaire.com/jrun/jr233p_ASB00_28_29.zip

Windows95/98/NT/2000andWindowsNTAlpha

Allairepatchjr233p_ASB00_28_29tar

http://download.allaire.com/jrun/jr233p_ASB00_28_29.tar.gz

UNIX/Linuxpatch-GNUgzip/tar

AllaireJRUN2.3检察恣意文件毛病

Allaire的JRUN服务器2.3上存在多重显现代码毛病。该毛病同意打击者在WEB服务器上检察根目次下的恣意文件的源代码。

JRun2.3利用JavaServlets剖析林林总总范例的页面(比方:HTML,JSP等等)。基于rules.properties和servlets.properties的文件设置,大概使用URL前缀"/servlet/"挪用任何servlet。

它大概利用Jrun的SSIFilterservlet在方针体系上检索恣意的文件。以下2个例子显现出能被用来检索恣意的文件的URLs:

http://jrun:8000/servlet/com.livesoftware.jrun.../../../test.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。

受影响的体系:AllaireJRun2.3.x

办理计划:下载并安装补钉:

Allairepatchjr233p_ASB00_28_29

http://download.allaire.com/jrun/jr233p_ASB00_28_29.zip

Windows95/98/NT/2000andWindowsNTAlpha

Allairepatchjr233p_ASB00_28_29tar

http://download.allaire.com/jrun/jr233p_ASB00_28_29.tar.gz

UNIX/Linuxpatch-GNUgzip/tar

AllaireJRUN2.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

受影响的体系:AllaireJRun2.3.x

办理计划:下载并安装补钉:

Allairepatchjr233p_ASB00_28_29

http://download.allaire.com/jrun/jr233p_ASB00_28_29.zip

Windows95/98/NT/2000andWindowsNTAlpha

Allairepatchjr233p_ASB00_28_29tar

http://download.allaire.com/jrun/jr233p_ASB00_28_29.tar.gz

UNIX/Linuxpatch-GNUgzip/tar

JRun2.3.x典范文件表露站点平安信息

JRun2.3.x在JRUN_HOME/servlets目次下有一些servlet典范文件,这个目次是JRun2.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.3servicepack

2)从服务器上删除一切的申明文档、演示编码、典范和课本,包含安装JRun2.3.x时寄存于JRUN_HOME/servlets目次和JRUN_HOME/jsm-default/services/jws/htdocs目次里的文档。

相干站点:http://www.allaire.com/

IBMWebSphereApplicationServer有哪些毛病?

1、IBMWebSphereApplicationServer3.0.2存在表露源代码毛病

IBMWebSphereApplicationServer同意打击者检察Webserver根目次以上的一切文件。IBMWebSphere利用JavaServlets处置多种页面范例的剖析(如HTML,JSP,JHTML,等等)。Inaddition分歧的servlets对分歧的页面举行处置,假如一个哀求的文件是未举行注册办理的,WebSphere会利用一个默许的servlet作挪用。假如文件路径以"/servlet/file/"作开首这个默许的servlet会被挪用这个哀求的文件会未被剖析或编译就显现出来。

受影响体系:IBMWebSphere3.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/

IBMWebSphereApplicationServer表露JSP文件内容

JavaServerPages(JSP)范例的文件是以.jsp扩大名在WebSphereApplicationServe上注册,WebSphere是文件名巨细写敏感的,.jsp和.JSP是分歧范例的文件扩大名。假如提交有.JSP的链接给WebSphere,而WebSphere找不到.JSP就会以默许的.text文件范例来呼应哀求。由于在NT体系中巨细写文件名长短敏感的,以是被哀求的文件会以文本的情势送出。

假如在UNIX服务器上会呈现"filenotfound"的毛病信息。

办理计划:点击此处下载补钉

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

BEAWebLogic有哪些表露源代码毛病?

受影响版本:

一切体系上的

BEAWebLogicEnterprise5.1.x

BEAWebLogicServerandExpress5.1.x

BEAWebLogicServerandExpress4.5.x

BEAWebLogicServerandExpress4.0.x

BEAWebLogicServerandExpress3.1.8

这个毛病使打击者能读取Web目次下一切文件的源代码。

WebLogic依附四个次要JavaServletsto服务分歧范例的文件。这些servlets是:

1)FileServlet-for复杂HTML页面

2)SSIServlet-forServerSideIncludes页面

3)PageCompileServlet-forJHTML页面

4)JSPServlet-forJavaServer页面

看着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是怎样注册的。

#Defaultservletregistration

#------------------------------------------------

#Virtualnameofthedefaultservletifnomatchingservlet

#isfoundweblogic.httpd.defaultServlet=file

因而假如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设置ConsoleHelpservlet,在weblogic.properties文件的以下内容可得知:

#ForConsolehelp.Donotmodify.

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利用wildcards声明你将利用一切这些文件扩大名作服务。举例注册文件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.

注重:这些信息是备有证实在BEAWebLogicServerandExpress申明档的:http://www.weblogic.com/docs51/admindocs/lockdown.html

另:请寄望新版本并晋级吧。
再说第三点:我并没有提到服务器也要整合,然后是IDE,一个好的IDE能够200%提高开发的速度,就说图形方面:你是经过简单托拽和点击就能实现功能好那。
乐观 该用户已被删除
沙发
发表于 2015-1-20 16:22:09 | 只看该作者
是一种突破用户端机器环境和CPU
爱飞 该用户已被删除
板凳
发表于 2015-1-29 12:56:39 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
小魔女 该用户已被删除
地板
发表于 2015-2-14 19:30:14 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
小女巫 该用户已被删除
5#
发表于 2015-3-4 09:57:52 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
精灵巫婆 该用户已被删除
6#
发表于 2015-3-11 18:10:10 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
分手快乐 该用户已被删除
7#
发表于 2015-3-19 06:20:24 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
再见西城 该用户已被删除
8#
发表于 2015-3-27 09:10:55 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 23:05

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表