csrf7 test cases added
This commit is contained in:
		
				
					committed by
					
						 Nanne Baars
						Nanne Baars
					
				
			
			
				
	
			
			
			
						parent
						
							e932253f06
						
					
				
				
					commit
					00873cfe3f
				
			| @@ -47,11 +47,13 @@ public class CSRFTest extends IntegrationTest { | ||||
|         uploadTrickHtml("csrf3.html", trickHTML3.replace("WEBGOATURL", url("/csrf/basic-get-flag"))); | ||||
|         checkAssignment3(callTrickHtml("csrf3.html")); | ||||
|          | ||||
|         //Assignment 4 | ||||
|         uploadTrickHtml("csrf4.html", trickHTML4.replace("WEBGOATURL", url("/csrf/review"))); | ||||
|         checkAssignment4(callTrickHtml("csrf4.html")); | ||||
|          | ||||
|         //Assignment 7 | ||||
|         uploadTrickHtml("csrf7.html", trickHTML7.replace("WEBGOATURL", url("/csrf/feedback/message"))); | ||||
|         //checkAssignment7(callTrickHtml("csrf7.html")); | ||||
|         checkAssignment7(callTrickHtml("csrf7.html")); | ||||
|          | ||||
|         //checkResults("/csrf"); | ||||
|          | ||||
| @@ -135,18 +137,22 @@ public class CSRFTest extends IntegrationTest { | ||||
|         params.clear(); | ||||
|         params.put("{\"name\":\"WebGoat\",\"email\":\"webgoat@webgoat.org\",\"content\":\"WebGoat is the best!!", "\"}"); | ||||
|         | ||||
|     	String result = RestAssured.given() | ||||
|     	String flag = RestAssured.given() | ||||
|             	.when() | ||||
|             	.relaxedHTTPSValidation() | ||||
|             	.cookie("JSESSIONID", getWebGoatCookie()) | ||||
|             	.header("Referer", webWolfUrl("/files/fake.html")) | ||||
|             	.formParams(params) | ||||
|             	.log().all() | ||||
|             	.contentType(ContentType.TEXT) | ||||
|             	.body("{\"name\":\"WebGoat\",\"email\":\"webgoat@webgoat.org\",\"content\":\"WebGoat is the best!!"+ "=\"}") | ||||
|             	.post(goatURL) | ||||
|             	.then() | ||||
|             	.log().all() | ||||
|             	.extract().asString(); | ||||
|     	flag = flag.substring(9+flag.indexOf("flag is:")); | ||||
|     	flag = flag.substring(0, flag.indexOf("\"")); | ||||
|  | ||||
|     	params.clear(); | ||||
|         params.put("confirmFlagVal", flag); | ||||
|         checkAssignment(url("/WebGoat/csrf/feedback"), params, true); | ||||
|         	 | ||||
|     } | ||||
|      | ||||
|   | ||||
| @@ -68,7 +68,7 @@ public class CSRFFeedback extends AssignmentEndpoint { | ||||
|         } catch (IOException e) { | ||||
|             return failed().feedback(ExceptionUtils.getStackTrace(e)).build(); | ||||
|         } | ||||
|         boolean correctCSRF = requestContainsWebGoatCookie(request.getCookies()) && request.getContentType().equals(MediaType.TEXT_PLAIN_VALUE); | ||||
|         boolean correctCSRF = requestContainsWebGoatCookie(request.getCookies()) && request.getContentType().contains(MediaType.TEXT_PLAIN_VALUE); | ||||
|         correctCSRF &= hostOrRefererDifferentHost(request); | ||||
|         if (correctCSRF) { | ||||
|             String flag = UUID.randomUUID().toString(); | ||||
| @@ -89,8 +89,8 @@ public class CSRFFeedback extends AssignmentEndpoint { | ||||
|     } | ||||
|  | ||||
|     private boolean hostOrRefererDifferentHost(HttpServletRequest request) { | ||||
|         String referer = request.getHeader("referer"); | ||||
|         String host = request.getHeader("host"); | ||||
|         String referer = request.getHeader("Referer"); | ||||
|         String host = request.getHeader("Host"); | ||||
|         if (referer != null) { | ||||
|             return !referer.contains(host); | ||||
|         } else { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user