Skip to content

Commit 26e8880

Browse files
committed
add rce
1 parent a60e62c commit 26e8880

File tree

4 files changed

+61
-1
lines changed

4 files changed

+61
-1
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.idea/
22
.DS_Store
33
target/
4+
*.iml

java-sec-code.iml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<configuration />
66
</facet>
77
</component>
8-
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6">
8+
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
99
<output url="file://$MODULE_DIR$/target/classes" />
1010
<output-test url="file://$MODULE_DIR$/target/test-classes" />
1111
<content url="file://$MODULE_DIR$">
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package org.joychou.controller;
2+
3+
import org.springframework.stereotype.Controller;
4+
import org.springframework.web.bind.annotation.RequestMapping;
5+
import org.springframework.web.bind.annotation.ResponseBody;
6+
7+
import javax.servlet.http.HttpServletRequest;
8+
import java.io.BufferedInputStream;
9+
import java.io.BufferedReader;
10+
import java.io.InputStreamReader;
11+
12+
/**
13+
* author: JoyChou ([email protected])
14+
* date: 2018.05.24
15+
* desc: java xxe vuls code
16+
* fix: filter parameters
17+
*/
18+
19+
@Controller
20+
@RequestMapping("/rce")
21+
public class Rce {
22+
23+
@RequestMapping("/exec")
24+
@ResponseBody
25+
public String CommandExec(HttpServletRequest request){
26+
String cmd = request.getParameter("cmd").toString();
27+
Runtime run = Runtime.getRuntime();
28+
try {
29+
Process p = run.exec(cmd);
30+
BufferedInputStream in = new BufferedInputStream(p.getInputStream());
31+
BufferedReader inBr = new BufferedReader(new InputStreamReader(in));
32+
String lineStr;
33+
while ((lineStr = inBr.readLine()) != null)
34+
return lineStr;
35+
if (p.waitFor() != 0) {
36+
if (p.exitValue() == 1)
37+
return "command exec failed";
38+
}
39+
inBr.close();
40+
in.close();
41+
} catch (Exception e) {
42+
e.printStackTrace();
43+
return "Except";
44+
}
45+
return "Cmd exec success.";
46+
}
47+
}
48+

src/main/java/org/joychou/controller/XMLInjection.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,25 @@
11
package org.joychou.controller;
22

3+
import com.sun.corba.se.impl.ior.OldJIDLObjectKeyTemplate;
34
import org.springframework.stereotype.*;
45
import org.springframework.web.bind.annotation.*;
56
import javax.servlet.http.HttpServletRequest;
67
import org.w3c.dom.Document;
78
import org.xml.sax.helpers.XMLReaderFactory;
89
import org.xml.sax.XMLReader;
910
import java.io.StringReader;
11+
import java.net.URL;
12+
1013
import org.xml.sax.InputSource;
14+
15+
import javax.xml.bind.JAXBContext;
16+
import javax.xml.bind.Unmarshaller;
1117
import javax.xml.parsers.DocumentBuilder;
1218
import javax.xml.parsers.DocumentBuilderFactory;
1319
import javax.xml.parsers.SAXParserFactory;
1420
import javax.xml.parsers.SAXParser;
21+
import javax.xml.transform.stream.StreamSource;
22+
1523
import org.xml.sax.helpers.DefaultHandler;
1624
import org.apache.commons.digester3.Digester;
1725

@@ -104,4 +112,7 @@ public static String xxe_DocumentBuilder(HttpServletRequest request) {
104112
return "except";
105113
}
106114
}
115+
116+
117+
107118
}

0 commit comments

Comments
 (0)