implementing support for dom xss
This commit is contained in:
parent
5347311319
commit
e183c8d8b3
@ -36,13 +36,36 @@ define(['jquery',
|
|||||||
menuView: menuView
|
menuView: menuView
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|
||||||
|
setUpCustomJS: function () {
|
||||||
|
webgoat.customjs.jquery = $; //passing jquery into custom js scope ... still klunky, but works for now
|
||||||
|
|
||||||
|
// temporary shim to support dom-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",
|
||||||
|
data:{param1:42,param2:24},
|
||||||
|
headers:{
|
||||||
|
"webgoat-requested-by":"dom-xss-vuln"
|
||||||
|
},
|
||||||
|
contentType:'application/x-www-form-urlencoded; charset=UTF-8'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
init:function() {
|
init:function() {
|
||||||
goatRouter = new GoatAppRouter();
|
goatRouter = new GoatAppRouter();
|
||||||
this.lessonController.start();
|
this.lessonController.start();
|
||||||
// this.menuController.initMenu();
|
// this.menuController.initMenu();
|
||||||
webgoat = {};
|
webgoat = {};
|
||||||
webgoat.customjs = {};
|
webgoat.customjs = {};
|
||||||
webgoat.customjs.jquery = $; //passing jquery into custom js scope ... still klunky, but works for now
|
|
||||||
|
this.setUpCustomJS();
|
||||||
|
|
||||||
|
|
||||||
goatRouter.on('route:lessonRoute', function(name) {
|
goatRouter.on('route:lessonRoute', function(name) {
|
||||||
this.lessonController.loadLesson(name,0);
|
this.lessonController.loadLesson(name,0);
|
||||||
|
@ -0,0 +1,39 @@
|
|||||||
|
package org.owasp.webgoat.plugin;
|
||||||
|
|
||||||
|
import org.owasp.webgoat.lessons.Assignment;
|
||||||
|
import org.owasp.webgoat.lessons.model.AttackResult;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMethod;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by jason on 11/23/16.
|
||||||
|
*/
|
||||||
|
public class DOMCrossSiteScripting extends Assignment {
|
||||||
|
@RequestMapping(method = RequestMethod.POST)
|
||||||
|
public @ResponseBody
|
||||||
|
AttackResult completed(@RequestParam Integer param1,
|
||||||
|
@RequestParam Integer param2, HttpServletRequest request)
|
||||||
|
throws IOException {
|
||||||
|
|
||||||
|
if (param1 == 42 && param2 == 24 && request.getHeader("webgoat-requested-by").equals("dom-xss-vuln")) {
|
||||||
|
return trackProgress(AttackResult.success("well done!"));
|
||||||
|
} else {
|
||||||
|
return trackProgress(AttackResult.failed("keep trying!"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPath() {
|
||||||
|
return "/CrossSiteScripting/dom-xss";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
|||||||
|
//webgoat.customjs.phoneHome = function (e) {
|
||||||
|
// webgoat.customjs.jquery.ajax({
|
||||||
|
// method:"POST",
|
||||||
|
// url:"/WebGoat/CrossSiteScripting/dom-xss",
|
||||||
|
// data:{param1:42,param2:24},
|
||||||
|
// headers:{
|
||||||
|
// "x-request-with":"dom-xss-vuln"
|
||||||
|
// },
|
||||||
|
// contentType:'application/x-www-form-urlencoded; charset=UTF-8'
|
||||||
|
// });
|
||||||
|
//}
|
Loading…
x
Reference in New Issue
Block a user