11package org .joychou .controller ;
22
3-
43import org .dom4j .io .SAXReader ;
54import org .springframework .web .bind .annotation .*;
65import javax .servlet .http .HttpServletRequest ;
6+
77import org .w3c .dom .Document ;
88import org .w3c .dom .Node ;
99import org .w3c .dom .NodeList ;
@@ -37,7 +37,7 @@ public String xxe_xmlReader(HttpServletRequest request) {
3737 String xml_con = Tools .getRequestBody (request );
3838 System .out .println (xml_con );
3939 XMLReader xmlReader = XMLReaderFactory .createXMLReader ();
40- xmlReader .parse ( new InputSource (new StringReader (xml_con )) ); // parse xml
40+ xmlReader .parse (new InputSource (new StringReader (xml_con ))); // parse xml
4141 return "ok" ;
4242 } catch (Exception e ) {
4343 System .out .println (e );
@@ -47,7 +47,7 @@ public String xxe_xmlReader(HttpServletRequest request) {
4747
4848
4949 @ RequestMapping (value = "/xmlReader_fix" , method = RequestMethod .POST )
50- public String xxe_xmlReader_fix (HttpServletRequest request ) {
50+ public String xxe_xmlReader_fix (HttpServletRequest request ) {
5151 try {
5252 String xml_con = Tools .getRequestBody (request );
5353 System .out .println (xml_con );
@@ -58,7 +58,7 @@ public String xxe_xmlReader_fix(HttpServletRequest request) {
5858 xmlReader .setFeature ("http://xml.org/sax/features/external-general-entities" , false );
5959 xmlReader .setFeature ("http://xml.org/sax/features/external-parameter-entities" , false );
6060 //fix code end
61- xmlReader .parse ( new InputSource (new StringReader (xml_con )) ); // parse xml
61+ xmlReader .parse (new InputSource (new StringReader (xml_con ))); // parse xml
6262
6363 return "ok" ;
6464 } catch (Exception e ) {
@@ -69,13 +69,13 @@ public String xxe_xmlReader_fix(HttpServletRequest request) {
6969
7070
7171 @ RequestMapping (value = "/SAXBuilder" , method = RequestMethod .POST )
72- public String xxe_SAXBuilder (HttpServletRequest request ) {
72+ public String xxe_SAXBuilder (HttpServletRequest request ) {
7373 try {
7474 String xml_con = Tools .getRequestBody (request );
7575 System .out .println (xml_con );
7676
7777 SAXBuilder builder = new SAXBuilder ();
78- org .jdom2 .Document document = builder .build ( new InputSource (new StringReader (xml_con )) ); // cause xxe
78+ org .jdom2 .Document document = builder .build (new InputSource (new StringReader (xml_con ))); // cause xxe
7979 return "ok" ;
8080 } catch (Exception e ) {
8181 System .out .println (e );
@@ -84,7 +84,7 @@ public String xxe_SAXBuilder(HttpServletRequest request) {
8484 }
8585
8686 @ RequestMapping (value = "/SAXBuilder_fix" , method = RequestMethod .POST )
87- public String xxe_SAXBuilder_fix (HttpServletRequest request ) {
87+ public String xxe_SAXBuilder_fix (HttpServletRequest request ) {
8888 try {
8989 String xml_con = Tools .getRequestBody (request );
9090 System .out .println (xml_con );
@@ -93,7 +93,7 @@ public String xxe_SAXBuilder_fix(HttpServletRequest request) {
9393 builder .setFeature ("http://apache.org/xml/features/disallow-doctype-decl" , true );
9494 builder .setFeature ("http://xml.org/sax/features/external-general-entities" , false );
9595 builder .setFeature ("http://xml.org/sax/features/external-parameter-entities" , false );
96- org .jdom2 .Document document = builder .build ( new InputSource (new StringReader (xml_con )) );
96+ org .jdom2 .Document document = builder .build (new InputSource (new StringReader (xml_con )));
9797
9898 return "ok" ;
9999 } catch (Exception e ) {
@@ -102,13 +102,13 @@ public String xxe_SAXBuilder_fix(HttpServletRequest request) {
102102 }
103103
104104 @ RequestMapping (value = "/SAXReader" , method = RequestMethod .POST )
105- public String xxe_SAXReader (HttpServletRequest request ) {
105+ public String xxe_SAXReader (HttpServletRequest request ) {
106106 try {
107107 String xml_con = Tools .getRequestBody (request );
108108 System .out .println (xml_con );
109109
110110 SAXReader reader = new SAXReader ();
111- org .dom4j .Document document = reader .read ( new InputSource (new StringReader (xml_con )) ); // cause xxe
111+ org .dom4j .Document document = reader .read (new InputSource (new StringReader (xml_con ))); // cause xxe
112112
113113 return "ok" ;
114114 } catch (Exception e ) {
@@ -118,7 +118,7 @@ public String xxe_SAXReader(HttpServletRequest request) {
118118 }
119119
120120 @ RequestMapping (value = "/SAXReader_fix" , method = RequestMethod .POST )
121- public String xxe_SAXReader_fix (HttpServletRequest request ) {
121+ public String xxe_SAXReader_fix (HttpServletRequest request ) {
122122 try {
123123 String xml_con = Tools .getRequestBody (request );
124124 System .out .println (xml_con );
@@ -127,7 +127,7 @@ public String xxe_SAXReader_fix(HttpServletRequest request) {
127127 reader .setFeature ("http://apache.org/xml/features/disallow-doctype-decl" , true );
128128 reader .setFeature ("http://xml.org/sax/features/external-general-entities" , false );
129129 reader .setFeature ("http://xml.org/sax/features/external-parameter-entities" , false );
130- org .dom4j .Document document = reader .read ( new InputSource (new StringReader (xml_con )) );
130+ org .dom4j .Document document = reader .read (new InputSource (new StringReader (xml_con )));
131131
132132 return "ok" ;
133133 } catch (Exception e ) {
@@ -231,7 +231,7 @@ public String xxeDocumentBuilderReturn(HttpServletRequest request) {
231231 NodeList child = rootNode .getChildNodes ();
232232 for (int j = 0 ; j < child .getLength (); j ++) {
233233 Node node = child .item (j );
234- buf .append ( node .getNodeName () + ": " + node .getTextContent () + "\n " );
234+ buf .append (node .getNodeName () + ": " + node .getTextContent () + "\n " );
235235 }
236236 }
237237 sr .close ();
@@ -265,8 +265,8 @@ public String DocumentBuilder(HttpServletRequest request) {
265265 for (int j = 0 ; j < child .getLength (); j ++) {
266266 Node node = child .item (j );
267267 // 正常解析XML,需要判断是否是ELEMENT_NODE类型。否则会出现多余的的节点。
268- if (child .item (j ).getNodeType () == Node .ELEMENT_NODE ) {
269- result .append ( node .getNodeName () + ": " + node .getFirstChild ().getNodeValue () + "\n " );
268+ if (child .item (j ).getNodeType () == Node .ELEMENT_NODE ) {
269+ result .append (node .getNodeName () + ": " + node .getFirstChild ().getNodeValue () + "\n " );
270270 }
271271 }
272272 }
@@ -387,7 +387,7 @@ public String XMLReaderVul(HttpServletRequest request) {
387387 SAXParserFactory spf = SAXParserFactory .newInstance ();
388388 SAXParser saxParser = spf .newSAXParser ();
389389 XMLReader xmlReader = saxParser .getXMLReader ();
390- xmlReader .parse ( new InputSource (new StringReader (xml_con )) );
390+ xmlReader .parse (new InputSource (new StringReader (xml_con )));
391391 return "test" ;
392392 } catch (Exception e ) {
393393 System .out .println (e .toString ());
@@ -407,12 +407,17 @@ public String XMLReaderSec(HttpServletRequest request) {
407407 xmlReader .setFeature ("http://apache.org/xml/features/disallow-doctype-decl" , true );
408408 xmlReader .setFeature ("http://xml.org/sax/features/external-general-entities" , false );
409409 xmlReader .setFeature ("http://xml.org/sax/features/external-parameter-entities" , false );
410- xmlReader .parse ( new InputSource (new StringReader (xml_con )) );
410+ xmlReader .parse (new InputSource (new StringReader (xml_con )));
411411 return "test" ;
412412 } catch (Exception e ) {
413413 System .out .println (e .toString ());
414414 return "except" ;
415415 }
416416 }
417417
418+
419+ public static void main (String [] args ) throws Exception {
420+
421+ }
422+
418423}
0 commit comments