diff --git a/webgoat-lessons/xxe/src/test/java/org/owasp/webgoat/plugin/BlindSendFileAssignmentTest.java b/webgoat-lessons/xxe/src/test/java/org/owasp/webgoat/plugin/BlindSendFileAssignmentTest.java index 621fdd1b3..606b51318 100644 --- a/webgoat-lessons/xxe/src/test/java/org/owasp/webgoat/plugin/BlindSendFileAssignmentTest.java +++ b/webgoat-lessons/xxe/src/test/java/org/owasp/webgoat/plugin/BlindSendFileAssignmentTest.java @@ -89,7 +89,34 @@ public class BlindSendFileAssignmentTest extends LessonTest { "%remote;" + "]>" + "test&send;"; + performXXE(xml); + } + @Test + public void solveOnlyParamReferenceEntityInExternalDTD() throws Exception { + File targetFile = new File(webGoatHomeDirectory, "/XXE/secret.txt"); + //Host DTD on WebWolf site + String dtd = "\n" + + "\">\n"; + webwolfServer.stubFor(get(WireMock.urlMatching("/files/test.dtd")) + .willReturn(aResponse() + .withStatus(200) + .withBody(dtd))); + webwolfServer.stubFor(get(urlMatching("/landing.*")).willReturn(aResponse().withStatus(200))); + + //Make the request from WebGoat + String xml = "" + + "\n" + + "" + + "%remote;" + + "%all;" + + "]>" + + "test&send;"; + performXXE(xml); + } + + private void performXXE(String xml) throws Exception { //Call with XXE injection mockMvc.perform(MockMvcRequestBuilders.post("/xxe/blind") .content(xml))