From d9c42b899dbe82c11eb38079c44002a945f6c091 Mon Sep 17 00:00:00 2001 From: kuanbs <49298756+kuanbs@users.noreply.github.com> Date: Wed, 24 Jun 2020 20:40:12 +0700 Subject: [PATCH 01/12] Check null dereference in DOMCrossSiteScripting --- .../java/org/owasp/webgoat/xss/DOMCrossSiteScripting.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/xss/DOMCrossSiteScripting.java b/webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/xss/DOMCrossSiteScripting.java index d9d08422c9..0b8af3cf9d 100644 --- a/webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/xss/DOMCrossSiteScripting.java +++ b/webgoat-lessons/cross-site-scripting/src/main/java/org/owasp/webgoat/xss/DOMCrossSiteScripting.java @@ -41,7 +41,7 @@ public AttackResult completed(@RequestParam Integer param1, SecureRandom number = new SecureRandom(); userSessionData.setValue("randValue", String.valueOf(number.nextInt())); - if (param1 == 42 && param2 == 24 && request.getHeader("webgoat-requested-by").equals("dom-xss-vuln")) { + if (param1 == 42 && param2 == 24 && request.getHeader("webgoat-requested-by").equals("dom-xss-vuln") && userSessionData.getValue("randValue")!=null ) { return success(this).output("phoneHome Response is " + userSessionData.getValue("randValue").toString()).build(); } else { return failed(this).build(); @@ -49,4 +49,4 @@ public AttackResult completed(@RequestParam Integer param1, } } // something like ... http://localhost:8080/WebGoat/start.mvc#test/testParam=foobar&_someVar=234902384lotslsfjdOf9889080GarbageHere%3Cscript%3Ewebgoat.customjs.phoneHome();%3C%2Fscript%3E--andMoreGarbageHere -// or http://localhost:8080/WebGoat/start.mvc#test/testParam=foobar&_someVar=234902384lotslsfjdOf9889080GarbageHere