详情
【独家特稿】WebGoat是由著名的OWASP负责维护的一个漏洞百出的J2EE Web应用程序,这些漏洞并非程序中的bug,而是故意设计用来讲授Web应用程序安全课程的。这个应用程序提供了一个逼真的教学环境,为用户完成课程提供了有关的线索。
对于每堂课,都对应于WebGoat应用程序中的一个实际的安全漏洞,为了能亲身实践如何利用这个漏洞,您首先需要具备该漏洞的有关知识,虽然WebGoat应用程序本身提供了有关的简介,但是很可能需要查找更多的资料才能搞定这个漏洞,所以,它对于激发安全测试人员和开发人员来的学习兴趣和提高安全知识的理解及动手能力方面,都是非常有帮助的。举个例子,在其中一个课程中,用户必须使用SQL注入来窃取(杜撰的)信用卡号。——51CTO王文文:看到这个,由衷的感叹老外对网络安全教育的认真和开放的程度。
一、为什么要设计WebGoat
在学习和实践Web应用程序安全知识时,我们所面临的一大难点是:到哪里去找可以练手的web应用程序呢?显然,明目张胆地扫描在线书店或者网络银行可不是个好主意,小心警察叔叔会找上门来。此外,安全专业人员经常需要测试某些安全工具,以检查它们的功能是否如厂商所鼓吹的那般,这时他们就需要一个具有确定漏洞的平台作为活靶子。但是,无论学习web测试,还是检查工具性能,都要求在一个安全、合法的环境下进行。即使你的意图是好的,但是在未经许可的情况下企图查找安全漏洞也是绝不允许的。这时,WebGoat项目便应运而生了。
WebGoat项目的主要目标很简单,就是为Web应用程序安全学习创建一个生动的交互式教学环境。将来,项目研究小组希望将WebGoat发展成为一个安全性基准测试程序平台和一个基于Java的蜜罐网站。如果您有兴趣,也可以查阅这个项目的路线图,其中能够找到一些可以立即参与的任务。——51CTO王文文:是不是挺像一个黑客游戏?既能过瘾又能练习网络安全技术,最重要的是不用去危害真实的网站。
二、WebGoat概要
WebGoat是一个用来演示Web应用程序中的典型安全漏洞的应用程序,旨在在应用程序安全审计的上下文中系统、条理地讲解如何测试和利用这些安全漏洞。WebGoat是用Java语言写成的,因此可以安装到所有带有Java虚拟机的平台之上。此外,它还分别为Linux、OS X Tiger和Windows系统提供了安装程序。部署该程序后,用户就可以进入课程了,该程序会自动通过记分卡来跟踪用户的进展。当前提供的训练课程有30多个,其中包括:跨站点脚本攻击(XSS)、访问控制、线程安全、操作隐藏字段、操纵参数、弱会话cookie、SQL盲注、数字型SQL注入、字符串型SQL注入、web服务、Open Authentication失效危险的HTML注释……等等!
我们希望通过WebGoat帮助测试人员掌握以下技能:
对于WebGoat来说,它的安装过程就是下载和解压缩,然后就可以使用了。然而,一些用户可能更喜欢下载war文件。下面就所有的安装方式分别做详细的说明。
三、WebGoat标准版安装方法
WebGoat是一个平台无关的Web安全漏洞实验环境,该环境需要Apache Tomcat和JAVA开发环境的支持。它分别为Microsoft Windows和UN*X环境提供了相应的安装程序,下面我们将根据操作系统分别加以介绍。
安装Java和Tomcat
需要注意,从版本5开始,这一步可以省略,因为它们自身带有Java Development Kit和Tomcat 。首先安装Java,您可以从/downloads/安装和部署合适的版本,最低版本要求为,然后安装Tomcat,您可以从/download-安装和部署Tomcat。
安装到Windows系统
1.将WebGoat-OWASP_Standard-解压至合适的目录中。
2.若要启动Tomcat,切换至前面存放解压后的WebGoat的目录,然后双击即可。
3.启动浏览器,在地址栏输入http://localhost/WebGoat/attack 。注意,这个链接地址是区分大小写的,务必确保其中使用的是大写字母W和G。
安装到Linux系统
1.将WebGoat-OWASP_Standard-解压至您的工作目录。
2.将文件中的第17、19和23行中的“”改为“”。
3.因为最新版本运行在一个特权端口上,所以您需要使用下列命令来启/停WebGoat Tomcat:
(1). 当作为root用户运行在80端口时,使用:
[Page: ]四、WebGoat Developer版安装方法
WebGoat Developer版(位于SourceForge网站),注意:这个版本旨在提供一个WebGoat实验室环境。如果您想开发自己的教学课程,请与Google code站点上的基线同步。
这个开发人员版本除了包含标准版本外,还多了一个已配置的Eclipse环境。这个开发人员版本使用也会简单,下载、解压缩然后单击脚本即可。如果您仅仅希望研究有关课程的话,它用起来跟标准版本没有什么区别。然而,如果希望组建实验室,或者在课堂上使用WebGoat的话,可以使用脚本来启动一个预配置的WebGoat环境。具体的使用说明,请参见自带的_HOW TO create the WebGoat 文件。
1.将Eclipse-抽取至工作目录
2.双击文件
3.在Eclipse右上角的包资源管理器中,右键单击WebGoat项目,并刷新
4.在Eclipse右上角的包资源管理器中,右键单击Servers项目,并刷新
5.在Eclipse 底部的服务器视图中,右键单击localhost服务器,并启动它
6.在浏览器中导航至http://localhost/WebGoat/attack。
7.源代码发生的任何变化,都会自动地引起编译操作,保存后会自动重新部署。
五、WebGoat War文件版安装方法
这个版本将假定已经预先安装了WebGoat Standard版本,或者主机已经安装了java (或更高版本)和tomcat 。如果您尚未安装Standard版本,那么就需要修改tomcat/conf/tomcat-文件来添加WebGoat用户,具体请参阅/p/webgoat/wiki/FAQ。
1.从WebGoat Downloads 链接下载WebGoat-OWASP_WAR-。
2.如果Tomcat正在运行的话,请先将其关闭——只需关闭Tomcat窗口即可。
3.将war文件拷贝至WebGoat-
4.删除现有的WebGoat-目录
(1).这会导致所有的课程状态被丢失
(2).若要保存课程状态,请保留webappswebgoatusers文件夹的副本
(3).重新启动WebGoat之后恢复这个用户目录
5.切换至WebGoat-目录
6.双击文件
这时Tomcat窗口就会启动。
7.在浏览器中导航至http://localhost/WebGoat/attack。
六、所需其他工具
对于老道的应用程序安全审计人员来说,可用的辅助工具有很多。就我们这种类型的安全审计来说,最常用的工具就是本地代理和web/应用程序爬虫。为了完成全套WebGoat课程,web代理程序是必不可少的。
应用程序审计代理
一般的web代理通常都能接收、处理和转发客户和服务器之间的HTTP和HTTPS数据,这样就能让所有的web通信流量都流经某个点,以便通过高速缓存或者应用安全策略来监视利用率、提高性能,等等。
应用程序代理工具可用来拦截本地客户端的浏览器和服务器端之间所有的HTTP和HTTPS通信,它实际上充当了一个可以监视、检查和(最重要地)修改所有的交互的中间人角色。
通过这种工具,审计人员可以准确确定出在客户和服务器之间传递的到底是什么样的数据。此外,它们还可以对这些数据进行分析和修改,从而测试对应用程序的影响。
在WebGoat的许多课程中,应用程序审计代理或者具备同等功能的软件都是必不可少的。下列是我们推荐的工具:
应用程序爬虫
所谓爬行一个站点,实际上就是识别和访问网站应用程序内所有预定的页面和链接,并建立本地副本;当然建立副本这一点通常是可选的。然后,我们就可以分析爬行结果,得到应用程序内目标脚本、表单、页面和字段等组成的明细表供后面的测试之用。镜像下来的内容也可以用来分析有关信息,这样做要比人工或者在线分析要快得多了。
下列是我们推荐的工具:
◆ParosProxy -
七、WebGoat操作指南
开始使用WebGoat之前,必须首先启动Tomcat,这可以通过Tomcat的bin目录中的脚本/批处理程序startup来完成。此外,要想正常使用WebGoat,它必须具备作为服务器运行所需的权限,并允许一些不常见的web行为。当主机运行WebGoat时,WebGoat的安全漏洞会牵连到主机,从而使主机很容易遭到攻击。如果机器连接到了互联网,那么就应该将其断开。运行的个人防火墙可能会阻止WebGoat的正常使用。所以,运行WebGoat时需要禁用所有的个人防火墙。
我们可以通过浏览器浏览localhost的80端口访问Tomcat服务器,如.1。
WebGoat位于WebGoat目录,其中的课程包含在.1/WebGoat/attack中。
WebGoat应用程序施行基于角色的安全机制。登录对话请求会要求输入身份凭证,登录时,可以将guest作为用户标识和密码使用。
[Page: ]八、WebScarab入门指南
WebScarab具有大量的功能,因而可能会让新用户有一种无从下手之感。为求简单起见,拦截和修改浏览器和HTTP/S服务器的请求和响应可以作为初学者很好的入门课,因为这无需学习太多的内容就可以完成。
首先,我们假定您能够自由访问因特网,也就是说,您并非位于一个代理之后。为简单起见,我们还假定您使用的浏览器是Internet Explorer。