XXE
Web373
$xmlfile = file_get_contents('php://input');
从 HTTP 请求的输入流中读取 XML 数据。
// 允许加载外部实体
libxml_disable_entity_loader(false);
// xml文件来源于数据流
$xmlfile = file_get_contents('php://input');
if(isset($xmlfile)){
$dom = new DOMDocument();
// 加载xml实体,参数为替代实体、加载外部子集
//LIBXML_NOENT:作用: 启用实体替换。这意味着在解析 XML 时,解析器会将所有的实体(包括外部实体)替换为它们的实际内容。
//LIBXML_DTDLOAD:作用: 启用 DTD 加载。解析器将加载和解析文档类型定义(DTD),包括外部 DTD。
$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
// 把 DOM 节点转换为 SimpleXMLElement 对象,这个函数的作用是将一个 DOMDocument 对象转换为 SimpleXMLElement 对象。转换后的对象允许你使用 SimpleXML 的方法来操作 XML 数据。
$creds = simplexml_import_dom($dom);
// 节点嵌套
$ctfshow = $creds->ctfshow;
echo $ctfshow;
}
发包