0x00:介绍
渗透过程中的XML注入原因在于程序没有对接受的XML内容进行过滤和验证,而用户又可控,导致任意加载文件、实体注入、甚至命令执行等问题。代码审计方面只要查看代码有无过滤机制即可。
0x01:示例
简单示例如下,例如拿Java的XMLDecoder解析XML为例,示例代码如下。
package shuruyanzheng;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.beans.XMLDecoder;
public class Xmldecoder {
public static void XMLDecode_test(String path) throws Exception {
File file = new File(path);
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
XMLDecoder xd = new XMLDecoder(bis);
xd.readObject();
xd.close();
}
public static void main(String[] args) {
String path = "test.xml";
try {
XMLDecode_test(path);
} catch (Exception e) {
e.printStackTrace();
}
}
}