1212import org .xml .sax .XMLReader ;
1313import java .io .*;
1414import org .xml .sax .InputSource ;
15+
1516import javax .xml .parsers .DocumentBuilder ;
1617import javax .xml .parsers .DocumentBuilderFactory ;
1718import javax .xml .parsers .SAXParserFactory ;
1819import javax .xml .parsers .SAXParser ;
1920import org .xml .sax .helpers .DefaultHandler ;
2021import org .apache .commons .digester3 .Digester ;
2122import org .jdom2 .input .SAXBuilder ;
22-
23+ import org . joychou . utils . Tools ;
2324
2425/**
2526 * Java xxe vul and safe code.
@@ -33,9 +34,9 @@ public class XXE {
3334
3435 @ RequestMapping (value = "/xmlReader" , method = RequestMethod .POST )
3536 @ ResponseBody
36- public String xxe_xmlReader (HttpServletRequest request ) {
37+ public String xxe_xmlReader (HttpServletRequest request ) {
3738 try {
38- String xml_con = getBody (request );
39+ String xml_con = Tools . getBody (request );
3940 System .out .println (xml_con );
4041 XMLReader xmlReader = XMLReaderFactory .createXMLReader ();
4142 xmlReader .parse ( new InputSource (new StringReader (xml_con )) ); // parse xml
@@ -51,7 +52,7 @@ public String xxe_xmlReader(HttpServletRequest request) {
5152 @ ResponseBody
5253 public String xxe_xmlReader_fix (HttpServletRequest request ) {
5354 try {
54- String xml_con = getBody (request );
55+ String xml_con = Tools . getBody (request );
5556 System .out .println (xml_con );
5657
5758 XMLReader xmlReader = XMLReaderFactory .createXMLReader ();
@@ -74,7 +75,7 @@ public String xxe_xmlReader_fix(HttpServletRequest request) {
7475 @ ResponseBody
7576 public String xxe_SAXBuilder (HttpServletRequest request ) {
7677 try {
77- String xml_con = getBody (request );
78+ String xml_con = Tools . getBody (request );
7879 System .out .println (xml_con );
7980
8081 SAXBuilder builder = new SAXBuilder ();
@@ -90,7 +91,7 @@ public String xxe_SAXBuilder(HttpServletRequest request) {
9091 @ ResponseBody
9192 public String xxe_SAXBuilder_fix (HttpServletRequest request ) {
9293 try {
93- String xml_con = getBody (request );
94+ String xml_con = Tools . getBody (request );
9495 System .out .println (xml_con );
9596
9697 SAXBuilder builder = new SAXBuilder ();
@@ -109,7 +110,7 @@ public String xxe_SAXBuilder_fix(HttpServletRequest request) {
109110 @ ResponseBody
110111 public String xxe_SAXReader (HttpServletRequest request ) {
111112 try {
112- String xml_con = getBody (request );
113+ String xml_con = Tools . getBody (request );
113114 System .out .println (xml_con );
114115
115116 SAXReader reader = new SAXReader ();
@@ -126,7 +127,7 @@ public String xxe_SAXReader(HttpServletRequest request) {
126127 @ ResponseBody
127128 public String xxe_SAXReader_fix (HttpServletRequest request ) {
128129 try {
129- String xml_con = getBody (request );
130+ String xml_con = Tools . getBody (request );
130131 System .out .println (xml_con );
131132
132133 SAXReader reader = new SAXReader ();
@@ -146,7 +147,7 @@ public String xxe_SAXReader_fix(HttpServletRequest request) {
146147 @ ResponseBody
147148 public String xxe_SAXParser (HttpServletRequest request ) {
148149 try {
149- String xml_con = getBody (request );
150+ String xml_con = Tools . getBody (request );
150151 System .out .println (xml_con );
151152
152153 SAXParserFactory spf = SAXParserFactory .newInstance ();
@@ -165,7 +166,7 @@ public String xxe_SAXParser(HttpServletRequest request) {
165166 @ ResponseBody
166167 public String xxe_SAXParser_fix (HttpServletRequest request ) {
167168 try {
168- String xml_con = getBody (request );
169+ String xml_con = Tools . getBody (request );
169170 System .out .println (xml_con );
170171
171172 SAXParserFactory spf = SAXParserFactory .newInstance ();
@@ -186,7 +187,7 @@ public String xxe_SAXParser_fix(HttpServletRequest request) {
186187 @ ResponseBody
187188 public String xxe_Digester (HttpServletRequest request ) {
188189 try {
189- String xml_con = getBody (request );
190+ String xml_con = Tools . getBody (request );
190191 System .out .println (xml_con );
191192
192193 Digester digester = new Digester ();
@@ -203,7 +204,7 @@ public String xxe_Digester(HttpServletRequest request) {
203204 @ ResponseBody
204205 public String xxe_Digester_fix (HttpServletRequest request ) {
205206 try {
206- String xml_con = getBody (request );
207+ String xml_con = Tools . getBody (request );
207208 System .out .println (xml_con );
208209
209210 Digester digester = new Digester ();
@@ -225,7 +226,7 @@ public String xxe_Digester_fix(HttpServletRequest request) {
225226 @ ResponseBody
226227 public String xxeDocumentBuilderReturn (HttpServletRequest request ) {
227228 try {
228- String xml_con = getBody (request );
229+ String xml_con = Tools . getBody (request );
229230 System .out .println (xml_con );
230231
231232 DocumentBuilderFactory dbf = DocumentBuilderFactory .newInstance ();
@@ -259,7 +260,7 @@ public String xxeDocumentBuilderReturn(HttpServletRequest request) {
259260 @ ResponseBody
260261 public String DocumentBuilder (HttpServletRequest request ) {
261262 try {
262- String xml_con = getBody (request );
263+ String xml_con = Tools . getBody (request );
263264 System .out .println (xml_con );
264265
265266 DocumentBuilderFactory dbf = DocumentBuilderFactory .newInstance ();
@@ -296,7 +297,7 @@ public String DocumentBuilder(HttpServletRequest request) {
296297 @ ResponseBody
297298 public String xxe_DocumentBuilder_fix (HttpServletRequest request ) {
298299 try {
299- String xml_con = getBody (request );
300+ String xml_con = Tools . getBody (request );
300301 System .out .println (xml_con );
301302
302303 DocumentBuilderFactory dbf = DocumentBuilderFactory .newInstance ();
@@ -321,7 +322,7 @@ public String xxe_DocumentBuilder_fix(HttpServletRequest request) {
321322 @ ResponseBody
322323 public String xxe_xinclude_DocumentBuilder (HttpServletRequest request ) {
323324 try {
324- String xml_con = getBody (request );
325+ String xml_con = Tools . getBody (request );
325326 System .out .println (xml_con );
326327
327328 DocumentBuilderFactory dbf = DocumentBuilderFactory .newInstance ();
@@ -358,7 +359,7 @@ public String xxe_xinclude_DocumentBuilder(HttpServletRequest request) {
358359 @ ResponseBody
359360 public String xxe_xinclude_DocumentBuilder_fix (HttpServletRequest request ) {
360361 try {
361- String xml_con = getBody (request );
362+ String xml_con = Tools . getBody (request );
362363 System .out .println (xml_con );
363364 DocumentBuilderFactory dbf = DocumentBuilderFactory .newInstance ();
364365
@@ -393,22 +394,5 @@ public String xxe_xinclude_DocumentBuilder_fix(HttpServletRequest request) {
393394 }
394395 }
395396
396- // 获取body数据
397- private String getBody (HttpServletRequest request ) throws IOException {
398- InputStream in = request .getInputStream ();
399- BufferedReader br = new BufferedReader (new InputStreamReader (in ));
400- StringBuffer sb = new StringBuffer ("" );
401- String temp ;
402- while ((temp = br .readLine ()) != null ) {
403- sb .append (temp );
404- }
405- if (in != null ) {
406- in .close ();
407- }
408- if (br != null ) {
409- br .close ();
410- }
411- return sb .toString ();
412- }
413397
414398}
0 commit comments