From 82ef171a5062567646b1fcd14b1b428b2a5df6a7 Mon Sep 17 00:00:00 2001 From: misfir3 Date: Mon, 10 Jul 2017 08:33:10 -0400 Subject: [PATCH] XSS Lesson Modifications (#367) * initial cut on XSS, need to add some tests still * initial unit tests for assignment endpoints * updating header comment license thingy * comment, clean up * Stubs for security unit test * Additional Unit Testing * isEncoded and isNotEncoded Unit Tests added * http-proxies updates * update for XXE solutions * Work-around to handle special chars in action ... currently to be able to match {userId} in hint creation/assignment for IDOR * IDOR hints updated * mitigation content update * mitigation content update ... 2 * Lesson Overview updates * including restart lesson fix for lesson overview --- .../src/main/resources/static/css/main.css | 20 +- .../js/goatApp/controller/LessonController.js | 28 +- .../js/goatApp/model/AssignmentStatusModel.js | 6 + .../goatApp/model/LessonOverviewCollection.js | 14 + .../js/goatApp/model/LessonOverviewModel.js | 10 - .../static/js/goatApp/view/GoatRouter.js | 13 +- .../js/goatApp/view/HelpControlsView.js | 4 - .../static/js/goatApp/view/HintView.js | 2 +- .../js/goatApp/view/LessonContentView.js | 5 + .../js/goatApp/view/LessonOverviewView.js | 10 +- .../js/goatApp/view/PaginationControlView.js | 43 +- .../org/owasp/webgoat/plugin/Comment.java | 24 + .../plugin/CrossSiteScriptingLesson5a.java | 73 +- .../webgoat/plugin/DOMCrossSiteScripting.java | 56 +- .../plugin/DOMCrossSiteScriptingFollowUp.java | 35 - .../plugin/DOMCrossSiteScriptingVerifier.java | 65 ++ .../StoredCrossSiteScriptingVerifier.java | 65 ++ .../webgoat/plugin/StoredXssComments.java | 118 ++++ .../src/main/resources/css/stored-xss.css | 75 +++ .../resources/html/CrossSiteScripting.html | 629 ++++++++---------- .../resources/i18n/WebGoatLabels.properties | 6 +- .../src/main/resources/images/avatar1.png | Bin 0 -> 28394 bytes .../src/main/resources/js/stored-xss.js | 45 ++ ... => CrossSiteScripting_content10-off.adoc} | 0 ... => CrossSiteScripting_content11-off.adoc} | 0 ... => CrossSiteScripting_content12-off.adoc} | 0 ... => CrossSiteScripting_content13-off.adoc} | 0 ...=> CrossSiteScripting_content13a-off.adoc} | 0 ... => CrossSiteScripting_content14-off.adoc} | 0 ... => CrossSiteScripting_content15-off.adoc} | 0 ...=> CrossSiteScripting_content15a-off.adoc} | 0 ... => CrossSiteScripting_content16-off.adoc} | 0 .../en/CrossSiteScripting_content5b.adoc | 9 +- .../en/CrossSiteScripting_content6.adoc | 8 +- .../en/CrossSiteScripting_content6a.adoc | 9 +- .../en/CrossSiteScripting_content6b.adoc | 8 +- .../en/CrossSiteScripting_content7-off.adoc | 18 + .../en/CrossSiteScripting_content7.adoc | 27 +- .../en/CrossSiteScripting_content7b.adoc | 6 + .../en/CrossSiteScripting_content8-off.adoc | 20 + .../en/CrossSiteScripting_content8.adoc | 43 +- .../en/CrossSiteScripting_content9-off.adoc | 8 + .../en/CrossSiteScripting_content9.adoc | 52 +- ... => CrossSiteScripting_content9a-off.adoc} | 0 .../plugin/DOMCrossSiteScriptingTest.java | 83 +++ .../webgoat/plugin/StoredXssCommentsTest.java | 98 +++ .../images/chrome-manual-proxy-win.png | Bin 21890 -> 17300 bytes .../resources/images/zap-local-proxy-8090.png | Bin 0 -> 191006 bytes .../en/HttpBasics_ProxyIntro1.adoc | 16 + .../en/HttpBasics_ProxyIntro2.adoc | 6 +- .../webgoat/plugin/IDORDiffAttributes.java | 2 + .../webgoat/plugin/IDOREditOtherProfiile.java | 2 + .../webgoat/plugin/IDORViewOtherProfile.java | 2 + .../plugin/IDORViewOwnProfileAltUrl.java | 2 + .../webgoat/plugin/ViewOtherUserProfile.java | 130 ++-- .../idor/src/main/resources/html/IDOR.html | 4 +- .../resources/i18n/WebGoatLabels.properties | 19 +- .../lessonPlans/en/IDOR_mitigation.adoc | 56 +- webgoat-lessons/sol.txt | 3 + 59 files changed, 1349 insertions(+), 628 deletions(-) create mode 100644 webgoat-container/src/main/resources/static/js/goatApp/model/AssignmentStatusModel.js create mode 100644 webgoat-container/src/main/resources/static/js/goatApp/model/LessonOverviewCollection.js delete mode 100644 webgoat-container/src/main/resources/static/js/goatApp/model/LessonOverviewModel.js create mode 100644 webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/plugin/Comment.java delete mode 100644 webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/plugin/DOMCrossSiteScriptingFollowUp.java create mode 100644 webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/plugin/DOMCrossSiteScriptingVerifier.java create mode 100644 webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/plugin/StoredCrossSiteScriptingVerifier.java create mode 100644 webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/plugin/StoredXssComments.java create mode 100644 webgoat-lessons/cross-site-scripting/src/main/resources/css/stored-xss.css create mode 100644 webgoat-lessons/cross-site-scripting/src/main/resources/images/avatar1.png create mode 100644 webgoat-lessons/cross-site-scripting/src/main/resources/js/stored-xss.js rename webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/{CrossSiteScripting_content10.adoc => CrossSiteScripting_content10-off.adoc} (100%) rename webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/{CrossSiteScripting_content11.adoc => CrossSiteScripting_content11-off.adoc} (100%) rename webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/{CrossSiteScripting_content12.adoc => CrossSiteScripting_content12-off.adoc} (100%) rename webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/{CrossSiteScripting_content13.adoc => CrossSiteScripting_content13-off.adoc} (100%) rename webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/{CrossSiteScripting_content13a.adoc => CrossSiteScripting_content13a-off.adoc} (100%) rename webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/{CrossSiteScripting_content14.adoc => CrossSiteScripting_content14-off.adoc} (100%) rename webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/{CrossSiteScripting_content15.adoc => CrossSiteScripting_content15-off.adoc} (100%) rename webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/{CrossSiteScripting_content15a.adoc => CrossSiteScripting_content15a-off.adoc} (100%) rename webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/{CrossSiteScripting_content16.adoc => CrossSiteScripting_content16-off.adoc} (100%) create mode 100644 webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content7-off.adoc create mode 100644 webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content7b.adoc create mode 100644 webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content8-off.adoc create mode 100644 webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content9-off.adoc rename webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/{CrossSiteScripting_content9a.adoc => CrossSiteScripting_content9a-off.adoc} (100%) create mode 100644 webgoat-lessons/cross-site-scripting/src/test/java/org/owasp/webgoat/plugin/DOMCrossSiteScriptingTest.java create mode 100644 webgoat-lessons/cross-site-scripting/src/test/java/org/owasp/webgoat/plugin/StoredXssCommentsTest.java create mode 100644 webgoat-lessons/http-proxies/src/main/resources/images/zap-local-proxy-8090.png diff --git a/webgoat-container/src/main/resources/static/css/main.css b/webgoat-container/src/main/resources/static/css/main.css index 93edc7081..0c3d66785 100644 --- a/webgoat-container/src/main/resources/static/css/main.css +++ b/webgoat-container/src/main/resources/static/css/main.css @@ -973,15 +973,8 @@ cookie-container { padding-top:2px; } -.attack-link.solved-true { - color:#88FB88; -} - .attack-link.solved-false { - color:#f2baba; -} - -.attack-link.cur-page, .page-link.cur-page { + background-color:#ac2925; color:#fff; } @@ -989,6 +982,17 @@ cookie-container { color:#eee; } +.attack-link.solved-true { + /*color:#88FB88;*/ + background-color:#247506; + color:#fff; +} + +.attack-link.cur-page, .page-link.cur-page { + color:#fff; + font-weight:bold; +} + .page-link-wrapper { display:inline-block; } diff --git a/webgoat-container/src/main/resources/static/js/goatApp/controller/LessonController.js b/webgoat-container/src/main/resources/static/js/goatApp/controller/LessonController.js index 07a64c502..8fcb97c0d 100644 --- a/webgoat-container/src/main/resources/static/js/goatApp/controller/LessonController.js +++ b/webgoat-container/src/main/resources/static/js/goatApp/controller/LessonController.js @@ -18,17 +18,13 @@ define(['jquery', 'goatApp/view/TitleView', 'goatApp/model/LessonProgressModel', 'goatApp/view/LessonProgressView', - 'goatApp/view/LessonOverviewView', - 'goatApp/model/LessonOverviewModel' + 'goatApp/view/LessonOverviewView' ], function($, _, Backbone, LessonContentModel, LessonContentView, -// PlanView, -// SourceView, -// SolutionView, HintView, HelpControlsView, ParamView, @@ -41,8 +37,7 @@ define(['jquery', TitleView, LessonProgressModel, LessonProgressView, - LessonOverviewView, - LessonOverviewModel + LessonOverviewView ) { 'use strict' @@ -50,8 +45,6 @@ define(['jquery', this.lessonContent = new LessonContentModel(); this.lessonProgressModel = new LessonProgressModel(); this.lessonProgressView = new LessonProgressView(this.lessonProgressModel); - this.lessonOverviewModel = new LessonOverviewModel(); - this.lessonOverview = new LessonOverviewView(this.lessonOverviewModel); this.lessonContentView = options.lessonContentView; this.titleView = options.titleView; this.developerControlsView = new DeveloperControlsView(); @@ -63,7 +56,6 @@ define(['jquery', this.userAndInfoView = new UserAndInfoView(); this.menuButtonView = new MenuButtonView(); this.listenTo(this.lessonContentView, 'assignment:complete', this.updateMenu); - this.listenTo(this.lessonContentView, 'assignment:complete', this.updateLessonOverview); this.listenTo(this.lessonContentView, 'endpoints:filtered', this.filterPageHints); }; @@ -111,13 +103,11 @@ define(['jquery', }); this.listenTo(this.helpControlsView,'hints:show',this.showHints); - this.listenTo(this.helpControlsView,'lessonOverview:show',this.showLessonOverview) this.listenTo(this.helpControlsView,'lesson:restart',this.restartLesson); this.listenTo(this.developerControlsView, 'dev:labels', this.restartLesson); this.helpControlsView.render(); - this.lessonOverview.hideLessonOverview(); this.titleView.render(this.lessonInfoModel.get('lessonTitle')); }; @@ -125,10 +115,6 @@ define(['jquery', this.trigger('menu:reload') }; - this.updateLessonOverview = function() { - this.lessonOverviewModel.fetch(); - } - this.onContentLoaded = function(loadHelps) { this.lessonInfoModel = new LessonInfoModel(); this.listenTo(this.lessonInfoModel,'info:loaded',this.onInfoLoaded); @@ -198,10 +184,6 @@ define(['jquery', this.lessonHintView.render(); }; - this.showLessonOverview = function() { - this.lessonOverviewModel.fetch().then(this.lessonOverview.render()); - }; - this.restartLesson = function() { var self=this; $.ajax({ @@ -210,6 +192,7 @@ define(['jquery', }).done(function(lessonLink) { self.loadLesson(self.name); self.updateMenu(); + self.callPaginationUpdate(); }); }; @@ -218,9 +201,14 @@ define(['jquery', this.lessonContentView.showTestParam(param); }; + this.callPaginationUpdate = function () { + this.lessonContentView.updatePagination(); + } + }; + return Controller; }); diff --git a/webgoat-container/src/main/resources/static/js/goatApp/model/AssignmentStatusModel.js b/webgoat-container/src/main/resources/static/js/goatApp/model/AssignmentStatusModel.js new file mode 100644 index 000000000..ad28d205f --- /dev/null +++ b/webgoat-container/src/main/resources/static/js/goatApp/model/AssignmentStatusModel.js @@ -0,0 +1,6 @@ +define([ + 'backbone'], + function( + Backbone) { + return Backbone.Model.extend({}); +}); \ No newline at end of file diff --git a/webgoat-container/src/main/resources/static/js/goatApp/model/LessonOverviewCollection.js b/webgoat-container/src/main/resources/static/js/goatApp/model/LessonOverviewCollection.js new file mode 100644 index 000000000..9df696f0e --- /dev/null +++ b/webgoat-container/src/main/resources/static/js/goatApp/model/LessonOverviewCollection.js @@ -0,0 +1,14 @@ +define([ + 'backbone', + 'goatApp/model/AssignmentStatusModel' + ], + function( + Backbone, + AssignmentStatusModel) { + return Backbone.Collection.extend({ + //tagName: 'ul', + url: 'service/lessonoverview.mvc', + model: AssignmentStatusModel + }); +}); + diff --git a/webgoat-container/src/main/resources/static/js/goatApp/model/LessonOverviewModel.js b/webgoat-container/src/main/resources/static/js/goatApp/model/LessonOverviewModel.js deleted file mode 100644 index 17c906bd5..000000000 --- a/webgoat-container/src/main/resources/static/js/goatApp/model/LessonOverviewModel.js +++ /dev/null @@ -1,10 +0,0 @@ -define([ - 'backbone'], - function( - Backbone) { - return Backbone.Collection.extend({ - //tagName: 'ul', - url: 'service/lessonoverview.mvc' - }); -}); - diff --git a/webgoat-container/src/main/resources/static/js/goatApp/view/GoatRouter.js b/webgoat-container/src/main/resources/static/js/goatApp/view/GoatRouter.js index ec1667826..54aa52828 100644 --- a/webgoat-container/src/main/resources/static/js/goatApp/view/GoatRouter.js +++ b/webgoat-container/src/main/resources/static/js/goatApp/view/GoatRouter.js @@ -54,21 +54,24 @@ define(['jquery', webgoat.customjs.jquery = $; //passing jquery into custom js scope ... still klunky, but works for now webgoat.customjs.jqueryVuln = $vuln; - // temporary shim to support dom-xss assignment + // shim to support xss lesson webgoat.customjs.phoneHome = function (e) { console.log('phoneHome invoked'); - console.log(arguments.callee); - // webgoat.customjs.jquery.ajax({ method: "POST", - url: "/WebGoat/CrossSiteScripting/dom-xss", + url: "/WebGoat/CrossSiteScripting/phone-home-xss", data: {param1: 42, param2: 24}, headers: { "webgoat-requested-by": "dom-xss-vuln" }, - contentType: 'application/x-www-form-urlencoded; charset=UTF-8' + contentType: 'application/x-www-form-urlencoded; charset=UTF-8', + success: function (data) { + //devs leave stuff like this in all the time + console.log('phone home said ' + data); + } }); } + }, initialize: function () { diff --git a/webgoat-container/src/main/resources/static/js/goatApp/view/HelpControlsView.js b/webgoat-container/src/main/resources/static/js/goatApp/view/HelpControlsView.js index c317ba0f3..4986c1284 100644 --- a/webgoat-container/src/main/resources/static/js/goatApp/view/HelpControlsView.js +++ b/webgoat-container/src/main/resources/static/js/goatApp/view/HelpControlsView.js @@ -34,7 +34,6 @@ function($,_,Backbone) { this.$el.find('#show-solution-button').unbind().on('click',_.bind(this.showSolution,this)).show(); } - //this.$el.find('#show-lesson-overview-button').unbind().on('click', _.bind(this.showLessonOverview, this)).show(); this.$el.find('#restart-lesson-button').unbind().on('click',_.bind(this.restartLesson,this)).show(); }, @@ -52,9 +51,6 @@ function($,_,Backbone) { restartLesson: function() { this.trigger('lesson:restart'); - }, - showLessonOverview: function() { - this.trigger('lessonOverview:show'); } }); }); \ No newline at end of file diff --git a/webgoat-container/src/main/resources/static/js/goatApp/view/HintView.js b/webgoat-container/src/main/resources/static/js/goatApp/view/HintView.js index 85508c432..169185c56 100644 --- a/webgoat-container/src/main/resources/static/js/goatApp/view/HintView.js +++ b/webgoat-container/src/main/resources/static/js/goatApp/view/HintView.js @@ -77,7 +77,7 @@ function($, filterHint: function(endpoint) { var self = this; _.each(this.collection.models, function(hintModel) { - if (endpoint.indexOf(hintModel.get('assignmentPath')) > -1) { + if (endpoint.indexOf(hintModel.get('assignmentPath')) > -1 || decodeURIComponent(endpoint).indexOf(hintModel.get('assignmentPath')) > -1) { self.hintsToShow.push(hintModel.get('hint')); } }); diff --git a/webgoat-container/src/main/resources/static/js/goatApp/view/LessonContentView.js b/webgoat-container/src/main/resources/static/js/goatApp/view/LessonContentView.js index dd96905cb..fbc2abf94 100644 --- a/webgoat-container/src/main/resources/static/js/goatApp/view/LessonContentView.js +++ b/webgoat-container/src/main/resources/static/js/goatApp/view/LessonContentView.js @@ -60,6 +60,10 @@ define(['jquery', this.paginationControlView = new PaginationControlView(this.$contentPages,this.model.get('lessonUrl')); }, + updatePagination: function() { + this.paginationControlView.updateCollection(); + }, + getCurrentPage: function () { return this.currentPage; }, @@ -120,6 +124,7 @@ define(['jquery', markAssignmentComplete: function () { this.curForm.reset(); $(this.curForm).siblings('.assignment-success').find('i').removeClass('hidden'); + this.paginationControlView.updateCollection(); }, markAssignmentIncomplete: function () { diff --git a/webgoat-container/src/main/resources/static/js/goatApp/view/LessonOverviewView.js b/webgoat-container/src/main/resources/static/js/goatApp/view/LessonOverviewView.js index c073fbe9f..1f2497565 100644 --- a/webgoat-container/src/main/resources/static/js/goatApp/view/LessonOverviewView.js +++ b/webgoat-container/src/main/resources/static/js/goatApp/view/LessonOverviewView.js @@ -1,19 +1,19 @@ define(['jquery', 'underscore', 'backbone', - 'goatApp/model/LessonOverviewModel', + 'goatApp/model/LessonOverviewCollection', 'text!templates/lesson_overview.html'], function($, _, Backbone, - LessonOverviewModel, + LessonOverviewCollection, LessonOverviewTemplate) { return Backbone.View.extend({ template: LessonOverviewTemplate, el:'#lesson-overview', - initialize: function (lessonOverviewModel) { - this.model = lessonOverviewModel; - this.listenTo(this.model, 'change add remove update reset', this.render); + initialize: function (lessonOverviewCollection) { + this.collection = lessonOverviewModel; + this.listenTo(this.collection, 'change add remove update reset', this.render); this.hideLessonOverview(); }, diff --git a/webgoat-container/src/main/resources/static/js/goatApp/view/PaginationControlView.js b/webgoat-container/src/main/resources/static/js/goatApp/view/PaginationControlView.js index d156a6756..2dcecf136 100644 --- a/webgoat-container/src/main/resources/static/js/goatApp/view/PaginationControlView.js +++ b/webgoat-container/src/main/resources/static/js/goatApp/view/PaginationControlView.js @@ -1,12 +1,12 @@ define(['jquery', 'underscore', 'backbone', - 'goatApp/model/LessonOverviewModel', + 'goatApp/model/LessonOverviewCollection', 'text!templates/paging_controls.html'], function ($, _, Backbone, - LessonOverviewModel, + LessonOverviewCollection, PaginationTemplate) { return Backbone.View.extend({ template: PaginationTemplate, @@ -14,24 +14,27 @@ define(['jquery', initialize: function ($contentPages,baseLessonUrl) { this.$contentPages = $contentPages; - this.model = new LessonOverviewModel(); - this.listenTo(this.model, 'change add remove update reset', this.render); + this.collection = new LessonOverviewCollection(); + this.listenTo(this.collection, 'reset', this.render); this.numPages = this.$contentPages.length; this.baseUrl = baseLessonUrl; - - this.model.fetch(); + this.collection.fetch({reset:true}); this.initPagination(); - this.render(); + //this.render(); }, - render: function () { + render: function (e) { this.parseLinks(); var t = _.template(this.template); this.$el.html(t({'overview':this.lessonOverview})); - this.bindNavButtons(); + this.bindNavButtons(); this.hideShowNavButtons(); }, + updateCollection: function() { + this.collection.fetch({reset:true}); + }, + bindNavButtons: function() { this.$el.find('span.glyphicon-class.glyphicon.glyphicon-circle-arrow-right.show-next-page').unbind().on('click',this.incrementPageView.bind(this)); this.$el.find('span.glyphicon-class.glyphicon.glyphicon-circle-arrow-left.show-prev-page').unbind().on('click', this.decrementPageView.bind(this)); @@ -42,17 +45,20 @@ define(['jquery', var assignmentCount = this.$contentPages.find('.attack-container'); var solvedMap = {}; var pages = []; - // one pass on solved assignmets - _.each(this.model.toJSON(), function(assignment) { - if (assignment.solved) { - var key = assignment.assignment.path; //.replace(/\//g,''); - solvedMap[key] = assignment.assignment.name; - } + + _.each(this.collection.models, function(model) { + //alert (model.get('solved')); + if (model.get('solved')) { + var key = model.get('assignment').path.replace(/\//g,''); + solvedMap[key] = model.get('assignment').name; + } + }); isAttackSolved = function (path) { //strip var newPath = path.replace(/^\/WebGoat/,''); + var newPath = newPath.replace(/\//g,''); if (typeof solvedMap[newPath] !== 'undefined') { return true; } @@ -68,7 +74,7 @@ define(['jquery', pageClass = 'page-link'; pages.push({content:'content',pageClass:pageClass,curPageClass:curPageClass}); } else { - var $assignmentForms = $(page).find('.attack-container form'); + var $assignmentForms = $(page).find('.attack-container form.attack-form'); // use for loop to avoid anonymous function scope hell //var pageAssignments = {content:'attack',attacks:[]} pageClass = 'attack-link' @@ -87,6 +93,7 @@ define(['jquery', pages.push({solvedClass:solvedClass,content:'assignment',curPageClass:curPageClass,pageClass:pageClass}); } }); + //assign to the view this.lessonOverview = { baseUrl: this.baseUrl, @@ -134,7 +141,7 @@ define(['jquery', this.hideNextPageButton(); this.showPrevPageButton; } - this.render(); + this.collection.fetch({reset:true}); }, decrementPageView: function() { @@ -151,7 +158,7 @@ define(['jquery', this.hidePrevPageButton(); this.showNextPageButton() } - this.render(); + this.collection.fetch({reset:true}); }, hideShowNavButtons: function () { diff --git a/webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/plugin/Comment.java b/webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/plugin/Comment.java new file mode 100644 index 000000000..9ebb4ecc3 --- /dev/null +++ b/webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/plugin/Comment.java @@ -0,0 +1,24 @@ +package org.owasp.webgoat.plugin; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import javax.xml.bind.annotation.XmlRootElement; + +/** + * @author nbaars + * @since 4/8/17. + */ +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +@XmlRootElement +public class Comment { + private String user; + private String dateTime; + private String text; +} + diff --git a/webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/plugin/CrossSiteScriptingLesson5a.java b/webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/plugin/CrossSiteScriptingLesson5a.java index 6b87d7475..27bc2b4d5 100644 --- a/webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/plugin/CrossSiteScriptingLesson5a.java +++ b/webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/plugin/CrossSiteScriptingLesson5a.java @@ -17,40 +17,40 @@ import java.io.IOException; /*************************************************************************************************** - * - * + * + * * This file is part of WebGoat, an Open Web Application Security Project utility. For details, * please see http://www.owasp.org/ - * + * * Copyright (c) 2002 - 20014 Bruce Mayhew - * + * * This program is free software; you can redistribute it and/or modify it under the terms of the * GNU General Public License as published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. - * + * * You should have received a copy of the GNU General Public License along with this program; if * not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. - * + * * Getting Source ============== - * + * * Source for this application is maintained at https://github.com/WebGoat/WebGoat, a repository for free software * projects. - * + * * For details, please see http://webgoat.github.io - * + * * @author Bruce Mayhew WebGoat * @created October 28, 2003 */ @AssignmentPath("/CrossSiteScripting/attack5a") public class CrossSiteScriptingLesson5a extends AssignmentEndpoint { - @Autowired - UserSessionData userSessionData; + @Autowired + UserSessionData userSessionData; @RequestMapping(method = RequestMethod.GET) public @ResponseBody AttackResult completed(@RequestParam Integer QTY1, @@ -58,35 +58,34 @@ public class CrossSiteScriptingLesson5a extends AssignmentEndpoint { @RequestParam Integer QTY4, @RequestParam String field1, @RequestParam Integer field2, HttpServletRequest request) throws IOException { - // System.out.println("foo"); - // Should add some QTY validation here. Someone could have fun and enter a negative quantity and get merchanidise and a refund :) - double totalSale = QTY1.intValue() * 69.99 + QTY2.intValue() * 27.99 + QTY3.intValue() * 1599.99 + QTY4.intValue() * 299.99; - userSessionData.setValue("xss-reflected1-complete",(Object)"false"); - StringBuffer cart = new StringBuffer(); - cart.append("Thank you for shopping at WebGoat.
You're support is appreciated
"); - cart.append("

We have chaged credit card:" + field1 + "
"); - cart.append( " -------------------
"); - cart.append( " $" + totalSale); + double totalSale = QTY1.intValue() * 69.99 + QTY2.intValue() * 27.99 + QTY3.intValue() * 1599.99 + QTY4.intValue() * 299.99; - //init state - if (userSessionData.getValue("xss-reflected1-complete") == null) { - userSessionData.setValue("xss-reflected1-complete",(Object)"false"); - } + userSessionData.setValue("xss-reflected1-complete",(Object)"false"); + StringBuffer cart = new StringBuffer(); + cart.append("Thank you for shopping at WebGoat.
You're support is appreciated


"); + cart.append("

We have chaged credit card:" + field1 + "
"); + cart.append( " -------------------
"); + cart.append( " $" + totalSale); - if (field1.toLowerCase().contains("")) { + //init state + if (userSessionData.getValue("xss-reflected1-complete") == null) { + userSessionData.setValue("xss-reflected1-complete",(Object)"false"); + } + + if (field1.toLowerCase().contains("")) { //return trackProgress() - userSessionData.setValue("xss-reflected-5a-complete","true"); - return trackProgress(success() - .feedback("xss-reflected-5a-success") - .output(cart.toString()) - .build()); + userSessionData.setValue("xss-reflected-5a-complete","true"); + return trackProgress(success() + .feedback("xss-reflected-5a-success") + .output(cart.toString()) + .build()); } else { - userSessionData.setValue("xss-reflected1-complete","false"); - return trackProgress(success() - .feedback("xss-reflected-5a-failure") - .output(cart.toString()) - .build()); - } + userSessionData.setValue("xss-reflected1-complete","false"); + return trackProgress(success() + .feedback("xss-reflected-5a-failure") + .output(cart.toString()) + .build()); + } } } \ No newline at end of file diff --git a/webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/plugin/DOMCrossSiteScripting.java b/webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/plugin/DOMCrossSiteScripting.java index 7bd3456ff..aa27c4195 100644 --- a/webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/plugin/DOMCrossSiteScripting.java +++ b/webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/plugin/DOMCrossSiteScripting.java @@ -1,8 +1,40 @@ +/*************************************************************************************************** + * + * + * This file is part of WebGoat, an Open Web Application Security Project utility. For details, + * please see http://www.owasp.org/ + * + * Copyright (c) 2002 - 20014 Bruce Mayhew + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU General Public License as published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with this program; if + * not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Getting Source ============== + * + * Source for this application is maintained at https://github.com/WebGoat/WebGoat, a repository for free software + * projects. + * + * For details, please see http://webgoat.github.io + * + * @author Bruce Mayhew WebGoat + * @created October 28, 2003 + */ + package org.owasp.webgoat.plugin; import org.owasp.webgoat.assignments.AssignmentEndpoint; import org.owasp.webgoat.assignments.AssignmentPath; import org.owasp.webgoat.assignments.AttackResult; +import org.owasp.webgoat.session.UserSessionData; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @@ -10,27 +42,27 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; import java.io.IOException; +import java.security.SecureRandom; -/** - * Created by jason on 11/23/16. - */ -@AssignmentPath("/CrossSiteScripting/dom-xss") + +@AssignmentPath("/CrossSiteScripting/phone-home-xss") public class DOMCrossSiteScripting extends AssignmentEndpoint { @RequestMapping(method = RequestMethod.POST) public @ResponseBody AttackResult completed(@RequestParam Integer param1, @RequestParam Integer param2, HttpServletRequest request) throws IOException { + + UserSessionData userSessionData = getUserSessionData(); + SecureRandom number = new SecureRandom(); + userSessionData.setValue("randValue",number.nextInt()); + if (param1 == 42 && param2 == 24 && request.getHeader("webgoat-requested-by").equals("dom-xss-vuln")) { - System.out.println("DOM-XSS successful, param1 is 42"); - return trackProgress(success().build()); + System.out.println(userSessionData.getValue("randValue") + " << randValue"); + return trackProgress(success().output("phoneHome Response is " + userSessionData.getValue("randValue").toString()).build()); } else { return trackProgress(failed().build()); } } } -// something like ... http://localhost:8080/WebGoat/start.mvc#test/testParam=foobar&_someVar=234902384lotslsfjdOf9889080GarbageHere%3Cscript%3Ewebgoat.customjs.phoneHome();%3C%2Fscript%3E -// or http://localhost:8080/WebGoat/start.mvc#test/testParam=foobar&_someVar=234902384lotslsfjdOf9889080GarbageHere"; + + static { + comments.add(new Comment("secUriTy", DateTime.now().toString(fmt), "Comment for Unit Testing")); + comments.add(new Comment("webgoat", DateTime.now().toString(fmt), "This comment is safe")); + comments.add(new Comment("guest", DateTime.now().toString(fmt), "This one is safe too.")); + comments.add(new Comment("guest", DateTime.now().toString(fmt), "Can you post a comment, calling webgoat.customjs.phoneHome() ?")); + } + + @RequestMapping(method = GET, produces = MediaType.APPLICATION_JSON_VALUE,consumes = ALL_VALUE) + @ResponseBody + public Collection retrieveComments() { + Collection allComments = Lists.newArrayList(); + // no filtering applied here at render + allComments.addAll(comments); + + return allComments; + } + + @RequestMapping(method = RequestMethod.POST) + @ResponseBody + public AttackResult createNewComment (@RequestBody String commentStr) throws IOException { + + Comment comment = parseJson(commentStr); + + EvictingQueue comments = userComments.getOrDefault(webSession.getUserName(), EvictingQueue.create(100)); + comments.add(comment); + comment.setDateTime(DateTime.now().toString(fmt)); + comment.setUser(webSession.getUserName()); + + userComments.put(webSession.getUserName(), comments); + + if (comment.getText().contains(phoneHomeString)) { + return (success().feedback("xss-stored-comment-success").build()); + } else { + return (failed().feedback("xss-stored-comment-failure").build()); + } + } + + private Comment parseJson(String comment) { + ObjectMapper mapper = new ObjectMapper(); + try { + return mapper.readValue(comment, Comment.class); + } catch (IOException e) { + return new Comment(); + } + } +} + + + + + diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/css/stored-xss.css b/webgoat-lessons/cross-site-scripting/src/main/resources/css/stored-xss.css new file mode 100644 index 000000000..3bc2ca4eb --- /dev/null +++ b/webgoat-lessons/cross-site-scripting/src/main/resources/css/stored-xss.css @@ -0,0 +1,75 @@ +/* Component: Posts */ +.post .post-heading { + height: 95px; + padding: 20px 15px; +} +.post .post-heading .avatar { + width: 60px; + height: 60px; + display: block; + margin-right: 15px; +} +.post .post-heading .meta .title { + margin-bottom: 0; +} +.post .post-heading .meta .title a { + color: black; +} +.post .post-heading .meta .title a:hover { + color: #aaaaaa; +} +.post .post-heading .meta .time { + margin-top: 8px; + color: #999; +} +.post .post-image .image { + width:20%; + height: 40%; +} +.post .post-description { + padding: 5px; +} +.post .post-footer { + border-top: 1px solid #ddd; + padding: 15px; +} +.post .post-footer .input-group-addon a { + color: #454545; +} +.post .post-footer .comments-list { + padding: 0; + margin-top: 20px; + list-style-type: none; +} +.post .post-footer .comments-list .comment { + display: block; + width: 100%; + margin: 20px 0; +} +.post .post-footer .comments-list .comment .avatar { + width: 35px; + height: 35px; +} +.post .post-footer .comments-list .comment .comment-heading { + display: block; + width: 100%; +} +.post .post-footer .comments-list .comment .comment-heading .user { + font-size: 14px; + font-weight: bold; + display: inline; + margin-top: 0; + margin-right: 10px; +} +.post .post-footer .comments-list .comment .comment-heading .time { + font-size: 12px; + color: #aaa; + margin-top: 0; + display: inline; +} +.post .post-footer .comments-list .comment .comment-body { + margin-left: 50px; +} +.post .post-footer .comments-list .comment > .comments-list { + margin-left: 50px; +} \ No newline at end of file diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/html/CrossSiteScripting.html b/webgoat-lessons/cross-site-scripting/src/main/resources/html/CrossSiteScripting.html index 4371a5def..c1c614b52 100644 --- a/webgoat-lessons/cross-site-scripting/src/main/resources/html/CrossSiteScripting.html +++ b/webgoat-lessons/cross-site-scripting/src/main/resources/html/CrossSiteScripting.html @@ -2,368 +2,307 @@ -

- - -
-
+
+ + +
+
-
- - -
-
- -
- - - -
- - - - - - - -
Were the cookies the same on each tab?
-
-
- -
-
- +
+ + +
+
+ +
+ + + +
+ + + + + + + +
Were the cookies the same on each tab?
+
-
-
- - -
+ +
+
+
-
- - -
-
-
- - -
-
-
- - -
- -
-
- - -
-
- -
- - - -
-
-
-

Shopping Cart

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Shopping Cart Items -- To Buy NowPriceQuantityTotal
Studio RTA - Laptop/Reading Cart with Tilting Surface - - Cherry69.99$0.00
Dynex - Traditional Notebook Case27.99$0.00
Hewlett-Packard - Pavilion Notebook with Intel Centrino1599.99$0.00
3 - Year Performance Service Plan $1000 and Over299.99$0.00
-
- - - - - - - - - - - - - - - - - - - - - - -
The total charged to your credit card:$0.00
 
Enter your credit card number:
Enter your three digit access code:
-
-
-
-
- -
-
- -
- -
- -
-
-
-
- - -
- -
-
- -
-
- -
-
-
- -
- - + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+ +
+
+ + -
-
-
- - - - -
- - -
- -
-
- +
+
+ +
+ + + +
+
+
+

Shopping Cart

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Shopping Cart Items -- To Buy NowPriceQuantityTotal
Studio RTA - Laptop/Reading Cart with Tilting Surface - + Cherry69.99$0.00
Dynex - Traditional Notebook Case27.99$0.00
Hewlett-Packard - Pavilion Notebook with Intel Centrino1599.99$0.00
3 - Year Performance Service Plan $1000 and Over299.99$0.00
+
+ + + + + + + + + + + + + + + + + + + + + + +
The total charged to your credit card:$0.00
 
Enter your credit card number:
Enter your three digit access code:
+
+
+
+ +
+
+
-
- - -
-
-
- - - - -
- - -
- -
-
- -
-
+
+
+
- - - - - - - - - - - - - - - - - - - +
+
+
+
- - - - - - - - - +
+ + +
+
+
+ + + + +
+ + +
+ +
+
+ +
+
- - - - - - +
+ + +
+
+
+ + + + +
+ + +
+ +
+
+ +
+
- - - - - - - - - - - - - - - - - - - - - - - - - - +
+
+
- - - - - - +
+
+ + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
+ +
+
+
+
+ user profile image +
+
+
+ John Doe + uploaded a photo. +
+
24 days ago
+
+
+ +
+ image post +
+ +
+ +
+ +
+
+ + +
+ +
+ +
+ + +
+ +
+
+ +
+
+ +
+ +
+
+ +
+ +
+
- - - - - - \ No newline at end of file diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/i18n/WebGoatLabels.properties b/webgoat-lessons/cross-site-scripting/src/main/resources/i18n/WebGoatLabels.properties index 68d7f6267..9d3490287 100644 --- a/webgoat-lessons/cross-site-scripting/src/main/resources/i18n/WebGoatLabels.properties +++ b/webgoat-lessons/cross-site-scripting/src/main/resources/i18n/WebGoatLabels.properties @@ -8,5 +8,7 @@ xss-reflected-6a-failure=No, look at the example. Check the GoatRouter.js file. xss.lesson1.failure=Are you sure? Try using a tab from a different site. xss-dom-message-success=Correct, I hope you didn't cheat, using the console! xss-dom-message-failure=Incorrect, keep trying. It should be obvious in the log when you are successful. - -#xss-reflected-5b-do5a-first=Do the reflected xss attack prior to this, then come back and answer this. \ No newline at end of file +xss-stored-comment-success=It appears your payload should invoke the function. To tell for sure, you need to capture the value and put it in the form below. Then we will really know. +xss-stored-comment-failure=We can't see the payload in your submission, but XSS can be tricky. Look for the call back fired after the comments reload. If you see that and can put the correct value there and put it in, maybe you did succeed. +xss-stored-callback-success=Yes, that is the correct value (note, it will be a different value each time the phoneHome endpoint is called). +xss-stored-callback-failure=No, that is not the correct value (note, it will be a different value each time the phoneHome endpoint is called). diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/images/avatar1.png b/webgoat-lessons/cross-site-scripting/src/main/resources/images/avatar1.png new file mode 100644 index 0000000000000000000000000000000000000000..4ea864f90009013d7d30ea3fb8c70b1f49c7e4b8 GIT binary patch literal 28394 zcmeI(f5ENDT zB&p@Sc=YAQ>&<*i$#bO7-o&Gu?VKUsO?QUKLA9X!NhjL%0D`5Zr6Vlefig3uH=W86 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' + + 'avatar' + + '
' + + '
' + + '
' + + '

USER

' + + '
DATETIME
' + + '
' + + '

COMMENT

' + + '
' + + ''; + + getChallenges(); + + function getChallenges() { + $("#list").empty(); + $.get('CrossSiteScripting/stored-xss', function (result, status) { + for (var i = 0; i < result.length; i++) { + var comment = html.replace('USER', result[i].user); + comment = comment.replace('DATETIME', result[i].dateTime); + comment = comment.replace('COMMENT', result[i].text); + $("#list").append(comment); + } + + }); + } +}) \ No newline at end of file diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content10.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content10-off.adoc similarity index 100% rename from webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content10.adoc rename to webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content10-off.adoc diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content11.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content11-off.adoc similarity index 100% rename from webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content11.adoc rename to webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content11-off.adoc diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content12.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content12-off.adoc similarity index 100% rename from webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content12.adoc rename to webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content12-off.adoc diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content13.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content13-off.adoc similarity index 100% rename from webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content13.adoc rename to webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content13-off.adoc diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content13a.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content13a-off.adoc similarity index 100% rename from webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content13a.adoc rename to webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content13a-off.adoc diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content14.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content14-off.adoc similarity index 100% rename from webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content14.adoc rename to webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content14-off.adoc diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content15.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content15-off.adoc similarity index 100% rename from webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content15.adoc rename to webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content15-off.adoc diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content15a.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content15a-off.adoc similarity index 100% rename from webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content15a.adoc rename to webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content15a-off.adoc diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content16.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content16-off.adoc similarity index 100% rename from webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content16.adoc rename to webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content16-off.adoc diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content5b.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content5b.adoc index 477752127..16de62421 100644 --- a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content5b.adoc +++ b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content5b.adoc @@ -1,5 +1,10 @@ -== Was it Really Reflected XSS? +== Self XSS or Reflected XSS? -You should have been able to execute script with the last example. Was it truly reflected XSS? +You should have been able to execute script with the last example. At this point, it would be considered 'self XSS' though. +Why is that? +That is because there is no link that would tigger that XSS. +You can try it yourself to see what happens ... go to (substitute localhost with your server's name or IP if you need to): + +link: http://localhost:8080/WebGoat/CrossSiteScripting/attack5a?QTY1=1&QTY2=1&QTY3=1&QTY4=1&field1=4128+3214+0002+1999&field2=111 diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content6.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content6.adoc index 1445c3baf..0a8ba10db 100644 --- a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content6.adoc +++ b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content6.adoc @@ -1,8 +1,10 @@ -== DOM-Based XSS Scenario +== Reflected and DOM-Based XSS -DOM-based XSS is similar to reflected. The difference is that the payload will never go to the server, but will only ever be processed by the client. +DOM-based XSS is another form of reflected XSS. Both are triggered by sending a link with inputs that are reflected to the browser. +The difference between DOM and 'traditional' reflected XSS is that, with DOM, the payload will never go to the server. It will only ever be processed by the client. -* Attacker sends a malicious URL to victim + +* Attacker sends a malicious URL to victim * Victim clicks on the link * That link may load a malicious web page or a web page they use (are logged into?) that has a vulnerable route/handler * If it's a malicious web page, it may use it's own JavaScript to attack another page/url with a vulnerable route/handler diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content6a.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content6a.adoc index 08176abe4..656d9f4de 100644 --- a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content6a.adoc +++ b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content6a.adoc @@ -1,12 +1,15 @@ == Ientify Potential for DOM-Based XSS -For this, you'll want to look for some 'test' code in the route handlers (javascript/backbone). Sometimes, test code gets left in. -(Often times test code is very simple and lacks security or any quality controls!). +DOM-Based XSS can usually be found by looking for the route configurations in the client-side code. +Look for a route that takes inputs that you can ID being 'reflected' to the page. + +For this example, you'll want to look for some 'test' code in the route handlers (WebGoat uses backbone as its primary javascript library). +Sometimes, test code gets left in production (and often times test code is very simple and lacks security or any quality controls!). Your objective is to find the route and exploit it. First though ... what is the base route? As an example, look at the URL for this lesson ... it should look something like /WebGoat/start.mvc#lesson/CrossSiteScripting.lesson/5 (although maybe slightly different). The 'base route' in this case is: *start.mvc#lesson/* -The *CrossSiteScripting.lesson/5* after that are parameters that are processed by javascript route handler. +The *CrossSiteScripting.lesson/#* after that are parameters that are processed by javascript route handler. So, what is test route for this test code? diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content6b.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content6b.adoc index d66d36423..3fd67b860 100644 --- a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content6b.adoc +++ b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content6b.adoc @@ -1,9 +1,11 @@ == Try It! DOM-Based XSS -Some attacks are 'blind'. Fortunately, you have the server running here so you will be able to tell if you are successful. Use the route you just found and see if -you can use the fact that it reflects a parameter from the route without encoding to execute an internal function in WebGoat. The function you want to execute is ... +Some attacks are 'blind'. Fortunately, you have the server running here so you will be able to tell if you are successful. +Use the route you just found and see if you can use the fact that it reflects a parameter from the route without encoding to execute an internal function in WebGoat. +The function you want to execute is ... *webgoat.customjs.phoneHome()* -Sure, you could just use console/debug to trigger it, but you need to trigger it via a URL in a new tab. Once you complete it, paste the output message from the log below ... +Sure, you could just use console/debug to trigger it, but you need to trigger it via a URL in a new tab. +Once you do trigger it, a subsequent response will come to the browser with a random number. Put that random number in below. diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content7-off.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content7-off.adoc new file mode 100644 index 000000000..95ec99a41 --- /dev/null +++ b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content7-off.adoc @@ -0,0 +1,18 @@ +== DOM-Based XSS Example + +---- + +---- diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content7.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content7.adoc index 95ec99a41..ebfc3c4f0 100644 --- a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content7.adoc +++ b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content7.adoc @@ -1,18 +1,11 @@ -== DOM-Based XSS Example +== Stored XSS +Stored cross-site scripting is different in that the payload is persisted (stored) as opposed to passed/injected via a link. ----- - ----- +== Stored XSS Scenario +* Attacker posts malicious script to a message board +* Message is stored in a server database +* Victim reads the message +* The malicious script embedded in the message board post executes in the victim’s browser +** The script steals sensitive information, like the session id, and releases it to the attacker + +*Victim does not realize attack occurred* diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content7b.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content7b.adoc new file mode 100644 index 000000000..f7141ffa6 --- /dev/null +++ b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content7b.adoc @@ -0,0 +1,6 @@ +See the comments below. + +Add a comment with a javascript payload. Again ... you want to call the _webgoat.customjs.phoneHome_ function. + +As an attacker (offensive security), keep in mind that most apps are not going to have such a straight-forwardly named compromise. +Also, you may have to find a way to load your own javascript dynamically to fully achieve goals of exfiltrating data. \ No newline at end of file diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content8-off.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content8-off.adoc new file mode 100644 index 000000000..6eda0dd78 --- /dev/null +++ b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content8-off.adoc @@ -0,0 +1,20 @@ +== DOM-based XSS Defense + +* Attacker creates url: ++ +---- +http://mylogin.com/login?error= +---- + +* JavaScript must enforce input validation ++ +---- + if ( errorMsg\[1\].match(/^[ a-zA-Z0-9:-]$/)) + { + document.write(‘some error’); + } + else + { + document.write(''+errorMsg\[1\]+''); + } +---- diff --git a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content8.adoc b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content8.adoc index 6eda0dd78..80a3c7a25 100644 --- a/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content8.adoc +++ b/webgoat-lessons/cross-site-scripting/src/main/resources/lessonPlans/en/CrossSiteScripting_content8.adoc @@ -1,20 +1,27 @@ -== DOM-based XSS Defense +== XSS Defense -* Attacker creates url: -+ ----- -http://mylogin.com/login?error= ----- -* JavaScript must enforce input validation -+ ----- - if ( errorMsg\[1\].match(/^[ a-zA-Z0-9:-]$/)) - { - document.write(‘some error’); - } - else - { - document.write(''+errorMsg\[1\]+''); - } ----- +=== Why? +Hopefully we've covered that by now. Bottom line, you don't want someone else's code running in the context of your users and their logged-in seession + +=== What to encode? +The basic premise of defending against XSS is *output endoding* any untrusted input that goes to the screen. +That may be changing with more sophisticated attacks, but is still the best defense we currently have. *AND* ... *context matters* + +Another word on 'untrusted input'. If in doubt, treat everything (even data you populated in your DB as untrusted). +Sometimes data is shared across multiple systems and what you think is your data, may not have been created by you/your team. + +=== When/Where? +Encode *as the data is sent to the browser* (not in your persisted data). In the case of *Single Page Apps (SPA's), you will need to encode +in the client*. Consult your framework/library for me details, but some resources will be provided on the next page. + +=== How? + + * Encode as HTML Entities in HTML Body + * Encode as HTML Entities in HTML Attribute + * Encode for Javascript if outputting user input to javascript (but think about that ... you're outputting user input into javascript on your page!!) + +*DO NOT* try to blacklist/negative filter on strings like 'MoreTextHere\"}") + .contentType(MediaType.APPLICATION_JSON)); + + results.andExpect(status().isOk()); + results.andExpect(jsonPath("$.lessonCompleted",CoreMatchers.is(true))); + } + + @Test + public void failure() throws Exception { + ResultActions results = mockMvc.perform(MockMvcRequestBuilders.post("/CrossSiteScripting/stored-xss") + .content("{\"text\":\"someTextHereMoreTextHere\"}") + .contentType(MediaType.APPLICATION_JSON)); + + results.andExpect(status().isOk()); + results.andExpect(jsonPath("$.lessonCompleted",CoreMatchers.is(false))); + } + + /* For the next two tests there is a comment seeded ... + comments.add(new Comment("secUriTy", DateTime.now().toString(fmt), "Comment for Unit Testing")); + ... the isEncoded method will remain commented out as it will fail (because WebGoat isn't supposed to be secure) + */ + + //Ensures it is vulnerable + @Test + public void isNotEncoded() throws Exception { + //do get to get comments after posting xss payload + ResultActions taintedResults = mockMvc.perform(MockMvcRequestBuilders.get("/CrossSiteScripting/stored-xss")); + taintedResults.andExpect(jsonPath("$[0].text",CoreMatchers.is(CoreMatchers.containsString("")))); + } + + + //Could be used to test an encoding solution ... commented out so build will pass. Uncommenting will fail build, but leaving in as positive Security Unit Test +// @Test +// public void isEncoded() throws Exception { +// //do get to get comments after posting xss payload +// ResultActions taintedResults = mockMvc.perform(MockMvcRequestBuilders.get("/CrossSiteScripting/stored-xss")); +// taintedResults.andExpect(jsonPath("$[0].text",CoreMatchers.is(CoreMatchers.containsString("<scriptgt;")))); +// } +} \ No newline at end of file diff --git a/webgoat-lessons/http-proxies/src/main/resources/images/chrome-manual-proxy-win.png b/webgoat-lessons/http-proxies/src/main/resources/images/chrome-manual-proxy-win.png index 76ba1a12b10fec00b7ba5302f35f23a226932c0d..fd396797287351220c59e9224d9d5ce570be1a09 100644 GIT binary patch literal 17300 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 diff --git a/webgoat-lessons/http-proxies/src/main/resources/images/zap-local-proxy-8090.png b/webgoat-lessons/http-proxies/src/main/resources/images/zap-local-proxy-8090.png new file mode 100644 index 0000000000000000000000000000000000000000..4001bce6ac21c73e1dcfeee48f1ccd1d395a910d GIT binary patch literal 191006 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 Options in the menu +* Select 'Local Proxy' on the left +* Input 8090 for the 'Port' + +*Remember*: If you are not running WebGoat locally, leave this setting along, skip to the next page and use 8080 instead of 8090 + +image::images/zap-local-proxy-8090.png[ZAP Proxy Config,750,587,style="lesson-image"] \ No newline at end of file diff --git a/webgoat-lessons/http-proxies/src/main/resources/lessonPlans/en/HttpBasics_ProxyIntro2.adoc b/webgoat-lessons/http-proxies/src/main/resources/lessonPlans/en/HttpBasics_ProxyIntro2.adoc index 4adcecc5f..2926daed2 100644 --- a/webgoat-lessons/http-proxies/src/main/resources/lessonPlans/en/HttpBasics_ProxyIntro2.adoc +++ b/webgoat-lessons/http-proxies/src/main/resources/lessonPlans/en/HttpBasics_ProxyIntro2.adoc @@ -11,7 +11,7 @@ This will send all of your traffic to the proxy. Since we haven't set up a trust . Click _Settings_ . Select _Manual proxy configuration_ .. input *127.0.0.1* as the Proxy -.. input *8080* as the port +.. input *8090* as the port if running WebGoat locally and you updated ZAP to 8090 (otherwise, use *8080*) .. check the _Use this proxy server for all protocols_ checkbox image::images/firefox-proxy-config.png[Firefox Proxy Config,510,634,style="lesson-image"] @@ -23,7 +23,7 @@ image::images/firefox-proxy-config.png[Firefox Proxy Config,510,634,style="lesso . Click the _Change proxy settings_ button . Select the _proxies_ tab . Select Web Proxy (HTTP) -. Input 127.0.0.1 in the first box under _Web Proxy Server_ and your port # (8080 is what used earlier) in the second box (to the right) +. Input 127.0.0.1 in the first box under _Web Proxy Server_ and your port # (8090 if running WebGoat locally, otherwise 8080) in the second box (to the right) . You may also want to clear the _Bypass proxy settings for these Hosts & Domains_ text input at the bottom, but shouldn't need to @@ -37,6 +37,8 @@ image::images/chrome-manual-proxy-win.png[Chrome Proxy, 394,346,style="lesson-im (Win config image above) +*Remember*: If running WebGoat locally, you can use ZAP's default port of 8080 instead of 8090 (or whatever number you prefer to use) + === Other Proxy Configuration Options If you don't want to manage the proxy manually, there are extensions or plugins that can help you to do so without digging through as much config, diff --git a/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/IDORDiffAttributes.java b/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/IDORDiffAttributes.java index 2cde6b967..5079a2132 100644 --- a/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/IDORDiffAttributes.java +++ b/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/IDORDiffAttributes.java @@ -1,6 +1,7 @@ package org.owasp.webgoat.plugin; import org.owasp.webgoat.assignments.AssignmentEndpoint; +import org.owasp.webgoat.assignments.AssignmentHints; import org.owasp.webgoat.assignments.AssignmentPath; import org.owasp.webgoat.assignments.AttackResult; import org.springframework.web.bind.annotation.RequestMapping; @@ -42,6 +43,7 @@ import java.io.IOException; */ @AssignmentPath("IDOR/diff-attributes") +@AssignmentHints({"idor.hints.idorDiffAttributes1","idor.hints.idorDiffAttributes2","idor.hints.idorDiffAttributes3"}) public class IDORDiffAttributes extends AssignmentEndpoint { @RequestMapping(method = RequestMethod.POST) diff --git a/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/IDOREditOtherProfiile.java b/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/IDOREditOtherProfiile.java index 1d196030c..1d2e7cd52 100644 --- a/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/IDOREditOtherProfiile.java +++ b/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/IDOREditOtherProfiile.java @@ -1,6 +1,7 @@ package org.owasp.webgoat.plugin; import org.owasp.webgoat.assignments.AssignmentEndpoint; +import org.owasp.webgoat.assignments.AssignmentHints; import org.owasp.webgoat.assignments.AssignmentPath; import org.owasp.webgoat.assignments.AttackResult; import org.owasp.webgoat.session.UserSessionData; @@ -38,6 +39,7 @@ import org.springframework.web.bind.annotation.*; */ @AssignmentPath("IDOR/profile/{userId}") +@AssignmentHints({"idor.hints.otherProfile1","idor.hints.otherProfile2","idor.hints.otherProfile3","idor.hints.otherProfile4","idor.hints.otherProfile5","idor.hints.otherProfile6","idor.hints.otherProfile7","idor.hints.otherProfile8","idor.hints.otherProfile9"}) public class IDOREditOtherProfiile extends AssignmentEndpoint { @Autowired diff --git a/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/IDORViewOtherProfile.java b/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/IDORViewOtherProfile.java index c90188097..7d0d45dd8 100644 --- a/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/IDORViewOtherProfile.java +++ b/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/IDORViewOtherProfile.java @@ -2,6 +2,7 @@ package org.owasp.webgoat.plugin; import org.owasp.webgoat.assignments.AssignmentEndpoint; +import org.owasp.webgoat.assignments.AssignmentHints; import org.owasp.webgoat.assignments.AssignmentPath; import org.owasp.webgoat.assignments.AttackResult; import org.owasp.webgoat.session.UserSessionData; @@ -46,6 +47,7 @@ import java.util.Map; */ @AssignmentPath("IDOR/profile/{userId}") +@AssignmentHints({"idor.hints.otherProfile1","idor.hints.otherProfile2","idor.hints.otherProfile3","idor.hints.otherProfile4","idor.hints.otherProfile5","idor.hints.otherProfile6","idor.hints.otherProfile7","idor.hints.otherProfile8","idor.hints.otherProfile9"}) public class IDORViewOtherProfile extends AssignmentEndpoint{ @Autowired diff --git a/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/IDORViewOwnProfileAltUrl.java b/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/IDORViewOwnProfileAltUrl.java index 677783200..990c9a2a7 100644 --- a/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/IDORViewOwnProfileAltUrl.java +++ b/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/IDORViewOwnProfileAltUrl.java @@ -2,6 +2,7 @@ package org.owasp.webgoat.plugin; import org.owasp.webgoat.assignments.AssignmentEndpoint; +import org.owasp.webgoat.assignments.AssignmentHints; import org.owasp.webgoat.assignments.AssignmentPath; import org.owasp.webgoat.assignments.AttackResult; import org.owasp.webgoat.session.UserSessionData; @@ -46,6 +47,7 @@ import java.util.Map; */ @AssignmentPath("IDOR/profile/alt-path") +@AssignmentHints({"idor.hints.ownProfileAltUrl1","idor.hints.ownProfileAltUrl2","idor.hints.ownProfileAltUrl3"}) public class IDORViewOwnProfileAltUrl extends AssignmentEndpoint{ @Autowired diff --git a/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/ViewOtherUserProfile.java b/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/ViewOtherUserProfile.java index 622b8f5ac..952ba97b7 100644 --- a/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/ViewOtherUserProfile.java +++ b/webgoat-lessons/idor/src/main/java/org/owasp/webgoat/plugin/ViewOtherUserProfile.java @@ -1,64 +1,66 @@ -package org.owasp.webgoat.plugin; - -import com.google.common.collect.Lists; -import org.owasp.webgoat.assignments.AssignmentEndpoint; -import org.owasp.webgoat.assignments.AssignmentPath; -import org.owasp.webgoat.assignments.AttackResult; -import org.owasp.webgoat.session.UserSessionData; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Created by jason on 1/5/17. - */ - -@AssignmentPath("/IDOR/viewprofile/{id}") -public class ViewOtherUserProfile extends AssignmentEndpoint { - - private String color; - private String size; - private boolean isAdmin; - - @Autowired - UserSessionData userSessionData; - - @RequestMapping(produces = {"application/json"}) - public @ResponseBody - AttackResult completed(@PathVariable String userId, HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - List json = Lists.newArrayList(); - // can be re-used - Map errorMap = new HashMap(); - errorMap.put("error","not logged in, go back and log in first"); - - if (userSessionData.getValue("idor-authenticated-as") == null) { - json.add(errorMap); - return trackProgress(failed().feedback("idor.view.other.profile.failure1").build()); - } else { - if (userSessionData.getValue("idor-authenticated-as").equals("bill") || userSessionData.getValue("idor-authenticated-as").equals("tom")) { - System.out.println("**** authenticated as " + userSessionData.getValue("idor-authenticated-as")); - //logged in - String authUserId = (String)userSessionData.getValue("idor-authenticated-user-id"); - //secure code would check to make sure authUserId matches userId or some similar access control - // ... and in this endpoint, we won't bother with that - UserProfile userProfile = new UserProfile(userId); - return trackProgress(failed().feedback("idor.view.other.profile.failure2").build()); - } - } - // else - return trackProgress(failed().build()); - } - - - - -} +//package org.owasp.webgoat.plugin; +// +//import com.google.common.collect.Lists; +//import org.owasp.webgoat.assignments.AssignmentEndpoint; +//import org.owasp.webgoat.assignments.AssignmentHints; +//import org.owasp.webgoat.assignments.AssignmentPath; +//import org.owasp.webgoat.assignments.AttackResult; +//import org.owasp.webgoat.session.UserSessionData; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.web.bind.annotation.PathVariable; +//import org.springframework.web.bind.annotation.RequestMapping; +//import org.springframework.web.bind.annotation.ResponseBody; +// +//import javax.servlet.ServletException; +//import javax.servlet.http.HttpServletRequest; +//import javax.servlet.http.HttpServletResponse; +//import java.io.IOException; +//import java.util.HashMap; +//import java.util.List; +//import java.util.Map; +// +///** +// * Created by jason on 1/5/17. +// */ +// +//@AssignmentPath("/IDOR/viewprofile/{id}") +//@AssignmentHints({"idor.hints.otherProfile1","idor.hints.otherProfile2","idor.hints.otherProfile3"}) +//public class ViewOtherUserProfile extends AssignmentEndpoint { +// +// private String color; +// private String size; +// private boolean isAdmin; +// +// @Autowired +// UserSessionData userSessionData; +// +// @RequestMapping(produces = {"application/json"}) +// public @ResponseBody +// AttackResult completed(@PathVariable String userId, HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { +// List json = Lists.newArrayList(); +// // can be re-used +// Map errorMap = new HashMap(); +// errorMap.put("error","not logged in, go back and log in first"); +// +// if (userSessionData.getValue("idor-authenticated-as") == null) { +// json.add(errorMap); +// return trackProgress(failed().feedback("idor.view.other.profile.failure1").build()); +// } else { +// if (userSessionData.getValue("idor-authenticated-as").equals("bill") || userSessionData.getValue("idor-authenticated-as").equals("tom")) { +// System.out.println("**** authenticated as " + userSessionData.getValue("idor-authenticated-as")); +// //logged in +// String authUserId = (String)userSessionData.getValue("idor-authenticated-user-id"); +// //secure code would check to make sure authUserId matches userId or some similar access control +// // ... and in this endpoint, we won't bother with that +// UserProfile userProfile = new UserProfile(userId); +// return trackProgress(failed().feedback("idor.view.other.profile.failure2").build()); +// } +// } +// // else +// return trackProgress(failed().build()); +// } +// +// +// +// +//} diff --git a/webgoat-lessons/idor/src/main/resources/html/IDOR.html b/webgoat-lessons/idor/src/main/resources/html/IDOR.html index ead98411a..82fb3dcff 100644 --- a/webgoat-lessons/idor/src/main/resources/html/IDOR.html +++ b/webgoat-lessons/idor/src/main/resources/html/IDOR.html @@ -138,7 +138,7 @@