Java 调用XMLDecoder解析XML文件的时候,存在命令执行漏洞。

样例XML文件如下所示:

calc

对应Java代码如下所示:

package xmldecoder;import java.io.BufferedInputStream;  import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;  import java.util.ArrayList;  import java.util.List;  public class XmlDecoderTest {	public static void main(String[] args) {		// TODO Auto-generated method stub		java.io.File file = new java.io.File("d:/tmp/xmldecoder.xml");				java.beans.XMLDecoder xd = null;		try {			xd = new java.beans.XMLDecoder(new BufferedInputStream(new FileInputStream(file)));		} catch (FileNotFoundException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}  		          Object s2 = xd.readObject();          xd.close();	}}

执行效果如下所示: