目录
序言:WebGoat中文概述 (3)
目标 (3)
概要 (3)
未来发展 (3)
下载 (4)
发行版 (4)
WebGoat 5.2标准版 (4)
WebGoat 5.2开发版(位于Sourceforge) (4)
演示解决方案 (4)
演示视频链接 (5)
项目贡献者 (5)
1. Webgoat用户指南卷首语 (6)
1.1 版权与许可 (6)
1.2 商标 (6)
1.3 贡献者 (6)
1.4 文档版本历史 (6)
2. 概述 (6)
3. 目的 (9)
4. 必备工具 (9)
4.1 应用程序审计代理 (9)
4.2 应用程序爬虫 (9)
5. 安装 (10)
5.1 安装Java和Tomcat (10)
5.1.1 安装Java (10)
5.1.2 安装Tomcat (10)
5.2 安装到Windows系统 (10)
5.3 安装到Linux系统 (10)
5.4 安装至OS X(Tiger 10.4+)系统 (10)
5.5 安装至FreeBSD系统 (11)
5.6 运行 (11)
5.7 编译 (11)
5.8安装WAR文件到已安装的Tomcat服务 (12)
6. WebGoat入门 (12)
7. 课程计划 (14)
8. 基本操作 (17)
9. 利用代理 (19)
10. 起航 (20)
11. 怎样写一个新的WebGoat lesson (21)
序言:WebGoat中文概述
WebGoat是由著名的OWASP负责维护的一个漏洞百出的J2EE Web应用程序,这些漏洞并非程序中的bug,而是故意设计用来讲授Web应用程序安全课程的。对于每堂课,用户须通过搞定WebGoat应用程序中的一个实际的安全漏洞来验证各自对于该安全问题的理解。举个例子,在其中一个课程中,用户必须使用SQL注入来窃取(杜撰的)信用卡号。这个应用程序提供了一个逼真的教学环境,为用户完成课程提供了有关的线索及代码,从而使用户能更深入地理解该课程。
为什么叫“WebGoat”呢?即使是最好的程序员也会写出产生安全漏洞的代码,因而开发人员不必因为不懂安全而自卑。他们需要的仅仅是一个“替罪羊”,不是吗?就让这只“山羊”背黑锅吧!
请参考“WebGoat用户及安装指南”开始。
目标
在学习和实践Web应用程序安全知识时,我们所面临的一大难点是:到哪里去可以练手的web应用程序呢?显然,明目张胆地扫描在线书店或者网络银行可不是个好主意,小心警察叔叔会上门来。此外,安全专业人员经常需要测试某些安全工具,以检查它们的功能是否如厂商所鼓吹的那般,这时他们就需要一个具有确定漏洞的平台作为活靶子。但是,无论学习web测试,还是检查工具的性能,都要求在一个安全、合法的环境下进行。即使你的意图是好的,但是在未经许可的情况下企图查安全漏洞也是绝不允许的。
WebGoat项目的主要目标很简单,就是为Web应用程序安全学习创建一个生动的交互式教学环境。将来,项目研究小组希望将WebGoat发展成为一个安全性基准测试程序平台和一个基于Java的蜜罐网站。 概要
WebGoat 是用Java语言写成的,因此可以安装到所有带有Java虚拟机的平台之上。此外,它还分别为L
inux、OS X Tiger和Windows系统提供了安装程序。部署该程序后,用户就可以进入课程了,该程序会自动通过记分卡来跟踪用户的进展。当前提供的训练课程有 30多个,其中包括:
  跨站点脚本攻击(XSS)
  访问控制(Access Cnotrl)
  线程安全(Thread Safety)
  操作隐藏字段(Hidden Form Field Manipulation)
  操纵参数(Parameter Manipulation)
  弱会话cookie(Weak Session Cookies)
  SQL盲注(Blind SQL Injection)
  数字型SQL注入(Numeric SQL Injection)
  字符串型SQL注入(String SQL Injection)
  web服务(Web Services)
  Open Authentication失效(Fail Open Authentication)
  危险的HTML注释(Dangers of HTML Comments)
  ……等等
更多请参考“WebGoat用户及安装指南”。
未来发展
近年来WebGoat已经比较稳定了。WebGoat的问题页面仍然存在问题需要修复,如果您能帮助修复将不胜感激。
展望未来,WebGoat应利用OWASP提供的培训材料的优势,并将其纳入教学计划的材料。现阶段的WebGoat已经证明对于安全人员了解攻击类型及如何利用之是有用的,WebGoat应开始专注于教导安全和开发人员相关的缓解策略、方法。我期望计分卡功能和系统架构能有所完善,用于更好地跟踪课程的完成状况。WebGoat也可用于企业引进安全编码实践。
马上看看项目路线图,点任务来帮助我们吧。
下载
WebGoat可从Google code下载区le/p/webgoat/downloads/list
下载,您也可相应的同步取得当前的WebGoat代码树le/p/webgoat/ 。
发行版
您可从Sourceforge的OWASP源代码中心
sourceforge/project/showfiles.php?group_id=64424&package_id=61824
eclipse如何设置为中文取得WebGoat老版本,其中有包含Java的版本,也有不包含的版本。安装仅需解压下载到的安装包,并运行其中的开始脚本即可。为便于学习,其中也包含一个可直接部署在您J2EE应用服务器上的war包。WebGoat 5.2标准版
该标准发行版下载解压缩后,即可单击运行。它包含Java运行时环境及一个配置好的Tomcat5.5服务器。
双击执行webgoat.bat – Tomcat命令窗口即会启动,浏览器浏览localhost/WebGoat/attack WebGoat 5.2开发版(位于Sourceforge)
注意:此版旨在提供一个WebGoat实验室环境。如果您想开发自己的教学课程,请与Google code中的基线同步。
这个开发人员版本除了包含标准版本外,还多了一个已配置的Eclipse环境。这个开发人员版本使用也很简单,下载、解压缩然后单击脚本即可。如果您仅仅希望研究有关课程的话,它用起来跟标准版本没有什么区别。然而,如果希望组建实验室,或者在课堂上使用WebGoat的话,可以使用eclipse.bat 脚本来启动一个预配置的WebGoat环境。具体的使用说明,请参见自带的_HOW TO create the _文件:
1. 将Eclipse-Workspace.zip解压至工作目录;
2. 双击eclipse.bat文件;
3. 在Eclipse右上角的包资源管理器中,右键单击WebGoat项目,并刷新;
4. 在Eclipse右上角的包资源管理器中,右键单击Servers项目,并刷新;
5. 在Eclipse 底部的服务器视图中,右键单击localhost服务器,并启动它;
6. 在浏览器中导航至localhost/WebGoat/attack。
7. 源代码发生的任何变化,都会自动地引起编译操作,保存后会自动重新部署。
如对该版本有任何建议,请发送给Bruce Mayhew()。
演示解决方案
Aung Khant (YGN Ethical Hacker Group)创建了一系列的视频来演示WebGoat课程中可能的解决方案,它们可从yehg/lab/pr0js/training/webgoat.php处观看。如需关于WebGoat的帮助,可随时他。
演示视频链接
1. 综合yehg/lab/pr0js/training/webgoat.php#General
2. 代码品质yehg/lab/pr0js/training/webgoat.php#Code_Quality
3. 协助yehg/lab/pr0js/training/webgoat.php#Concurrency
4. 未认证参数yehg/lab/pr0js/training/webgoat.php#Unvalidated_Parameters
5. 接入限制缺陷yehg/lab/pr0js/training/webgoat.php#Access_Control_Flaws
6. 认证缺陷yehg/lab/pr0js/training/webgoat.php#Authentication_Flaws
7. 会话管理缺陷yehg/lab/pr0js/training/webgoat.php#Session_Management_Flaws
8. 跨站脚本攻击yehg/lab/pr0js/training/webgoat.php#Cross-Site_Scripting_(XSS)
9. 缓冲区溢出yehg/lab/pr0js/training/webgoat.php#Buffer_Overflows
10. 注入缺陷yehg/lab/pr0js/training/webgoat.php#Injection_Flaws
11. 不安全的存储yehg/lab/pr0js/training/webgoat.php#Insecure_Storage
12. 拒绝服务yehg/lab/pr0js/training/webgoat.php#Denial_of_Service_(DOS)
13. 错误配置yehg/lab/pr0js/training/webgoat.php#Insecure_Configuration_Insecure
14. web服务yehg/lab/pr0js/training/webgoat.php#Web_Services
15. AJAX安全yehg/lab/pr0js/training/webgoat.php#AJAX_Security
16. 挑战yehg/lab/pr0js/training/webgoat.php#Challenge
项目贡献者
WebGoat项目由Bruce Mayhew.主持,可通过与之联系。WebGoat通过Sourceforge 及Google进行分发。WebGoat框架使得添加其它课程变得非常容易。随着新的web技术不断涌现,我们正在积极寻开发人员添加新的课程。如果你有兴趣为项目志愿服务,或有意见、问题及建议,请加入WebGoat 邮件列表(/mailman/listinfo/owasp-webgoat)。
感谢Ounce实验室(www.ouncelabs/)允许我能在工作时间运行WebGoat项目。