WebGoat-7.1课程(修改版) - 图文
更新时间:2023-10-22 22:13:01 阅读量: 综合文库 文档下载
- webgoat教程推荐度:
- 相关推荐
密级
公开 WebGoat 7.1课程
版本说明
修订人 修订内容 修订时间 版本号 审阅人 倪伟伟 倪伟伟 初稿 修订 2016.05.23 1.0 2016.07.23 2.0 文档信息
文档名称 文档编号 文档版本号 扩散范围 扩散批准人 保密级别 文档说明
WebGoat7.1的本课程指导,自己根据网上搜集的资料整理(主要是胡晓斌2011年7月的WebGoat5.2课程使用说明和白河愁2012年9月的WebGoat5.4课程使用说明)以及http://drops.wooyun.org/web/13594,再加上自己的理解半完成。WebGoat7.1与以前的课程存在有不同之处。因自己刚接触Web安全,加之自身能力有限,部分课程没有完成,希望有兴趣的人一起学习、补充。
版权声明
可以随便修改
交流方式
1073746467
II
目录
1. WebGoat简介 ............................................................................................................................ 1 1.1. 1.2.
WebGoat安装 ........................................................................................................... 1 WebGoat启动 ........................................................................................................... 1
2. WebGoat课程 ............................................................................................................................ 2 2.1. 2.1.1. 2.1.2. 2.1.3. 2.2. 2.2.1. 2.3. 2.3.1. 2.3.2. 2.3.3. 2.4. 2.4.1. 2.4.2. 2.4.3. 2.4.4. 2.4.5. 2.4.6. 2.4.7. 2.5. 2.5.1. 2.5.2. 2.5.3.
Introduction ............................................................................................................... 2 How to work with WebGoat ........................................................................................ 2 Useful Tools ........................................................................................................................ 4 How to Create A Legacy Lesson ................................................................................. 5
General ........................................................................................................................ 5 HTTP Basic ......................................................................................................................... 5
Access Control Flaws .............................................................................................. 5 Using an Access Control Matrix .................................................................................. 5 Bypass a Path Based Access Control Scheme ........................................................ 6 LAB:Role Based Access Control .................................................................................. 7
AJAX Security .......................................................................................................... 14 LAB:Client Side Filtering ............................................................................................. 14 LAB:DOM-Based cross-site scripting ..................................................................... 16 DOM Injection ................................................................................................................. 19 XML Injection .................................................................................................................. 20 JSON Injection ................................................................................................................. 22 Insecure Client Storage ................................................................................................ 24 Dangerous Use of Eval ................................................................................................. 25
Authentication Flaws ........................................................................................... 26 Password Strength ........................................................................................................ 26 Forgot Password ............................................................................................................ 27 Multi Level Login 2 ........................................................................................................ 28
III
2.5.4. 2.6. 2.6.1. 2.7. 2.7.1. 2.8. 2.8.1. 2.8.2. 2.9. 2.9.1. 2.9.2. 2.9.3. 2.9.4. 2.9.5. 2.9.6. 2.9.7. 2.9.8. 2.10.
Multi Level Login 1 ........................................................................................................ 28
Buffer Overflows .................................................................................................... 29 Off-by-One Overflows ................................................................................................... 29
Code Quality ............................................................................................................. 31 Discover Clues in the HTML ....................................................................................... 31
Concurrency ............................................................................................................ 32 Thread Safety Problems............................................................................................... 32 Shopping Cart Concurrency Flaw ............................................................................ 32
Cross-SiteScripting ............................................................................................... 34 Phishing with XSS .......................................................................................................... 34 LAB:Cross Site Scripting ............................................................................................. 36 Stored XSS Attacks ......................................................................................................... 40 Reflected XSS Attacks .................................................................................................... 41 Cross Site Request Forgery(CSRF) ......................................................................... 41 CSRF Prompt By-Pass .................................................................................................. 42 CSRF Token By-Pass ..................................................................................................... 44 HTTP Only Test ............................................................................................................... 46
Improper Error Handling ................................................................................... 46
2.10.1. Fail Open Authentication Scheme ........................................................................... 46 2.11.
Injection Flaws ........................................................................................................ 47
2.11.1. Command Injection ...................................................................................................... 47 2.11.2. Numeric SQL Injection ................................................................................................. 48 2.11.3. Log Spoofing .................................................................................................................... 49 2.11.4. XPATH Injection ............................................................................................................. 50 2.11.5 String SQL Injection ...................................................................................................... 51 2.11.6 LAB:SQL Injection.......................................................................................................... 52 2.11.7 Database Backdoors ...................................................................................................... 56 2.11.8 Blind Numeric SQL Injection ..................................................................................... 57
IV
2.11.9 Blind String SQL Injection ........................................................................................... 57 3.1. 3.1.1. 3.1.2. 3.2. 3.2.1. 3.3. 3.3.1. 3.4. 3.4.1. 3.5. 3.5.1. 3.5.2. 3.5.3. 3.5.4. 3.6. 3.6.1. 3.6.2. 3.6.3. 3.7. 3.7.1. 3.7.2. 3.7.3. 3.7.4. 3.8.
Denial of Service .................................................................................................... 58 ZipBomb ............................................................................................................................ 58 Denial of Service from Multiple Logins .................................................................. 58
Insecure Communication ................................................................................... 59 Insecure Login ................................................................................................................ 59
Insecure Storage .................................................................................................... 61 Encoding Basics ............................................................................................................. 61
Malicious Execution ............................................................................................. 63 Malicious File Execution .............................................................................................. 63
Parameter Tampering ......................................................................................... 63 Bypass HTML Field Restrictions ............................................................................... 63 Exploit Hidden Fields ..................................................................................................... 64 Exploit Unchecked Email ............................................................................................ 64 Bypass Client Side JavaScript Validation ............................................................... 64
Session Management Flaws ............................................................................... 65 Hijack a Session .............................................................................................................. 65 Spoof an Authentication Cookie ............................................................................... 66 Session Fixation ............................................................................................................. 67
Web Services ........................................................................................................... 68 Create a SOAP Request ................................................................................................ 68 WSDL Scanning .............................................................................................................. 69 Web Service SQL Injection ......................................................................................... 70 Web Service SAX Injection ......................................................................................... 70
Challenge .................................................................................................................. 71
V
VI
文档名称:WebGoat 7.1课程指导
1. WebGoat简介
WebGoat是OWASP(Open Web Application Security Project)开发的用于Web漏洞演示与验证的平台。该平台包含了访问控制、AJAX安全、认证失效、缓冲区溢出、代码质量、并行性、XSS、不正确的错误控制、注入缺陷、DoS、不安全的通信、不安全的存储、恶意执行、参数篡改、会话管理缺陷和Web服务等多种常见的Web安全漏洞。
最新版下载https://github.com/WebGoat/WebGoat.git,本指南以7.1版本编写。
1.1. WebGoat安装
以WebGoat的Developers版为例进行安装,通过Git工具把WebGoat以及WebGoat-Lessons(https://github.com/WebGoat/WebGoat-Lessons.git)克隆到本地。
在命令行进入WebGoat-Lessons目录,执行mvn package,把WebGoat-Lessons打包成jar文件,然后拷贝到/WebGoat/webgoat-container/src/main/webapp/plugin_lessons/目录下。
在Eclipse或Myeclipse中导入WebGoat工程,至此,WebGoat安装完成。
1.2. WebGoat启动
在Eclipse或Myeclipse中使用Maven Build运行WebGoat,在本地浏览器输入访问地址:http://localhost:8080/WebGoat。
1
文档名称:WebGoat 7.1课程指导
输入用户名和密码后即可进入WebGoat的教学演示环境,如下图:
2. WebGoat课程
2.1. Introduction
2.1.1. How to work with WebGoat
1. 环境信息
WebGoat使用Apache Tomcat服务器,但是也可运行在任一的应用服务器上。
2. 界面说明
2
文档名称:WebGoat 7.1课程指导
? 1、WebGoat的课程分类; ? 2、显示Java源代码;
? 3、显示所选课程的通用解决办法; ? 4、显示课程目标;
? 5、显示完成课程的技术提示; ? 6、显示HTTP响应参数; ? 7、重新开始本课程; 3、解决课程问题
总是从课程计划开始,然后尝试解决课程问题,如果有必要,使用提示。如果适用,最后一个提示是解决方案文本。如果适用提示不能解决这个问题,你可以查看完整的详细解决方案。
4、读和编辑参数/Cookies
为了读和编辑参数/Cookies,你需要一个类似OWASP ZAP的本地代理去了拦截HTTP请求。更多关于ZAP的信息可以在“UsefulTools”章节找到。
5、配置新WebGoat用户
WebGoat使用spring-security.xml配置新用户
3
文档名称:WebGoat 7.1课程指导
增加一个用户很直接。作为例子,你可以使用guest入口。新增的用户应该和guest有同样的角色。新用户的user/password将不会显示在登录页。在/WEB-INF/spring-security.xml中增加类似如下内容:
1、OWASP ZAP
Zed Attack Proxy简写为ZAP,是一个简单易用的渗透测试工具,是发现Web应用中的漏洞的利器,更是渗透测试爱好者的好东西。
关于ZAP的使用方法,可以参考:http://www.freebuf.com/sectool/5427.html ZAP下载地址:https://github.com/zaproxy/zaproxy/wiki/Downloads,可根据自身需求进行下载。 2、Firebug
Firebug是Firefox的一个浏览器插件,可以使用Firebug检查、修改、编辑Web页面。
可以访问https://addons.mozilla.org/zh-CN/firefox/addon/firebug/,根据提示添加Firebug到Firefox。
4
文档名称:WebGoat 7.1课程指导
2.1.3. How to Create A Legacy Lesson
2.2. General
2.2.1. HTTP Basic
? HTTP基础知识
所有的 HTTP 传输都要遵循同样的通用格式。每个客户端的请求和服务端的响应都有三个步骤:请求或响应行、一个报头部分和实体部分。 ? 课程方法
在输入框内填写姓名,然后点击按钮Go!进行提交。服务器接收请求,处理输入,然后将结果返回给用户,说明了处理HTTP请求的基础知识。
通过操纵上述按钮去查看提示,用户应该可以熟悉WebGoat的特点,显示HTTP请求参数,HTTP请求cookies和Java源代码。第一次也可以尝试使用OWASP Zed Attack Proxy。
2.3. Access Control Flaws
2.3.1. Using an Access Control Matrix
? 课程介绍
在一个基于角色的访问控制方案中,一个角色代表一组访问权限和特权。一个用户可以被赋予一个或多个角色。一个基于角色的访问控制方案通常包含2部分:角色权限管理和角色分配。一个被破坏的基于角色的访问控制方案可能允许用户执行不属于他/她所被分配的角色,或以某种方式允许特权升级到未经授权的角色的访问。 ? 课程目标
角色成员中的每一个用户只被允许访问特定资源。你的目标是探索控制这个站点的访问控制规则。只有Admin用户组拥有“Account Manager”资源的权限。
5
文档名称:WebGoat 7.1课程指导
2.3.2. Bypass a Path Based Access Control Scheme
? 课程介绍
“webgoat”用户拥有访问lesson_plans/English目录下的所有文件的权限,尝试破坏访问控制机制,访问一个不再所列目录下的资源。在选择查看一个文件后,WebGoat将报告所访问文件是否被授权。选择一个有趣的文件来尝试,获取的可能是像WEB-INF/spring-security.xml这样的文件。记住依赖于WebGoat如何启动,文件的路径会有所不同。
6
文档名称:WebGoat 7.1课程指导
? 课程方法
使用OWASP ZAP代理拦截HTTP请求,修改访问文件,查看服务器返回结果。
在上图红色框标注的地方修改为WEB-INF/spring-security.xml文件所在路径,执行完成后如下图所示:
2.3.3. LAB:Role Based Access Control
Stage1:Bypass Presentational Layer Access Control
“Tom”作为一个普通员工,利用脆弱的访问控制,在职工列表界面使用删除功能。验证Tom的简介可以被删除。用户的密码是给定的用户名的小写(如:T
7
文档名称:WebGoat 7.1课程指导
om的密码是tom)。
Stage1:Bypass Presentational Layer Access Control
8
文档名称:WebGoat 7.1课程指导
1. 执行“Delete Profile”功能,使用OWASP ZAP拦截请求,查看“Action”行为,可以看到action=DeleteProfile。
2. 使用Tom用户登录,然后使用“ViewProfile”功能,使用代理截获请求,修改action行为DeleteProfile。
Stage2:Add Business Layer Access Control
执行修复未授权访问的Delete功能。这样做,需要修改WebGoat的源代码,重复阶段1,验证访问“DeleteProfile”功能被正确的拒绝。
在Eclipse或Myeclipse中打开【WebGoat-Lessons】->【role-based-access-control】->【org.owasp.webgoat.plugin.rollbased】文件夹中对RoleBasedAccessControl.java文件进行修改,在文件的234行已经使用CODE HERE进行了注释和标注,在此增加如下代码:
// ***************CODE HERE************************* if(!isAuthorized(s, getUserId(s),requestedActionName)){ } // ***************CODE HERE************************* throw new UnauthenticatedException(); 更改完成后,使用mvn package对文件进行打包,将target/plugins/role-based-access-control-1.0.jar拷贝到/WebGoat/webgoat-container/src/main/webapp/plugin_lessons/目录下。
9
文档名称:WebGoat 7.1课程指导
然后在此界面重新执行State 1的操作,越权请求被拒绝。实验通过。如下图所示:
Stage3: Breaking Data Layer Access Control
“Tom”作为一个普通员工,利用脆弱的访问控制,去访问另一位职工的简介。验证访问。
10
文档名称:WebGoat 7.1课程指导
1. 找出员工的ID,执行“View Profile”功能,使用OWASP ZAP拦截请求,查看“employee_id”的值,可以看到employee_id=101。
2. 使用Tom用户登录,然后使用“ViewProfile”功能,使用代理截获请求,修改employee_id的值为“101”。
提交请求之后,如下图所示:
11
文档名称:WebGoat 7.1课程指导
Stage4: Add Data Layer Access Control
执行修复拒绝未授权访问数据。一旦完成,重复阶段3,验证访问另一个员工的简介被被正确的拒绝。
在Eclipse或Myeclipse中打开【WebGoat-Lessons】->【role-based-access-control】->【org.owasp.webgoat.plugin.rollbased】文件夹中对RoleBasedAccessControl.java文件进行修改,在文件的234行已经使用CODE HERE进行了注释和标注,在此增加如下代码:
// ***************CODE HERE************************* if(!isAuthorized(s, getUserId(s),requestedActionName)){ } int userId = Integer.parseInt((String) s.getRequest().getSession().getAttribute(getLessonName() + \ + RoleBasedAccessControl.USER_ID)); throw new UnauthenticatedException(); 12
文档名称:WebGoat 7.1课程指导
int employeeId = s.getParser().getIntParameter(RoleBasedAccessControl.EMPLOYEE_ID); if (!action.isAuthorizedForEmployee(s, userId, employeeId)){ } // ************************************************* throw new UnauthenticatedException(); 更改完成后,使用mvn package对文件进行打包,将target/plugins/role-based-access-control-1.0.jar拷贝到/WebGoat/webgoat-container/src/main/webapp/plugin_lessons/目录下。
然后在此界面重新执行阶段3的操作,越权请求被拒绝。实验通过。如下图所示:
13
文档名称:WebGoat 7.1课程指导
2.4. AJAX Security
2.4.1. LAB:Client Side Filtering
阶段1:
你作为Moe Stooge,Goat Hills Financial的CSO登录。除CEO Neville Bartholomew之外,你可以访问每个人在公司中的信息。或者至少你不能访问CEO的信息。为这次练习,检查页面内容,看看你能发现什么额外的信息。
客户端过滤,有些时候服务器返回了很多条信息,只挑选了其中少数进行显示,可以在返回的html源码中看到全部的信息。
14
文档名称:WebGoat 7.1课程指导
1、 选中名字附近点击“查看元素”;
2、 在源码中查看id=\的table;
3、 可以发现隐藏的员工信息,可以找到Neville Bartholomew的ID为112,Salary为450000。
4、 在页面源码中修改下拉列表中的任一value值为112,就可以查看Neville Bartholomew的信息。
阶段2:现在,修复此问题。修改服务器仅返回被Moe Stooge允许看到的结果。
修改/WebGoat/webgoat-container/src/main/webapp/plugin_ehttps://www.bwwdw.com/plus/xtracted/plugin/Cli
entSideFiltering/jsp/clientSideFiltering.jsp,将
StringBuffer sb = new StringBuffer(); sb.append(\); sb.append(\); sb.append(\); sb.append(\); sb.append(\); 15
文档名称:WebGoat 7.1课程指导
String ehttps://www.bwwdw.com/plus/xpression = sb.toString(); 修改为
StringBuffer sb = new StringBuffer(); sb.append(\\sb.append(\\sb.append(\\sb.append(\\sb.append(\\ String ehttps://www.bwwdw.com/plus/xpression = sb.toString(); 2.4.2. LAB:DOM-Based cross-site scripting
DOM-Based XSS漏洞原理:
文档对象模型( DOM)从安全的角度提出了一个有趣的问题。它允许动态修改网页内容,但是这可以被攻击者用来进行恶意代码注入攻击。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而是从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生此漏洞。
阶段1:对于这个练习,你的任务是使用/images/logos/owasp.jpg图片污损网站。
在文本框中输入“
16
文档名称:WebGoat 7.1课程指导
阶段2:现在,尝试使用image标签创建一个JavaScript alert
在文本框输入“”,点击提交,stage 2完成,如下图所示:
阶段3:下一步,尝试使用IFRAME标签创建一个JavaScript alert
17
文档名称:WebGoat 7.1课程指导
在文本框输入“
正在阅读:
幼儿园五大领域教育目标与要求10-10
嫁娶择日03-17
大学生学习马克思主义哲学的困惑及对策02-28
写话教案定稿01-25
伦敦大学研究生申请条件 - 图文06-27
内科紧急人员替代方案10-27
生猪重复引种六宗罪05-13
2010年湖南省湘潭市中考真题数学试卷及答案(word版)03-08
看图写话不爱护眼睛的小兔300字07-12
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 改版
- WebGoat
- 课程
- 图文
- 7.1
- 兴业银行2012年企业金融产品经理任职资格考试大纲及参考书目(绿色金融) - 中级
- 最新试题库含答案陆游《临安春雨初霁》阅读练习及答案
- 德育综合模拟练习四
- 2011届高考数学考点单元复习教案6
- 农业气象学
- 审计案例分析题 -
- 电大西方经济学本科第6次任务单选题答案
- 主变高备变电气交接试验方案 - 图文
- 2016年高考物理热点题型和提分秘籍专题 8.3带电粒子在复合场中运动
- 二(2)班评语
- 国庆的简介 - 图文
- 人教版七年级上册语文第三单元测试卷及答案解读
- 楷书创作的追求与思考
- 走进金色热贡
- 护理管理在新生儿医院感染管理工作中的作用
- 人教版小学语文二年级上册第5单元试卷2
- 2013年上海市静安区初中物理中考二模试卷word版带答案
- 尔雅心理健康教育答案
- 第七章 呼吸系统疾病
- 《微观经济学》练习题答案2010