XXE

XML外部实体是XML的一个特性 XML可以使用外部实体引用来包含和解析其他文档

当然XML还有其他实体 详细内容可以参考这个DTD教程

这里就不详细将利用技巧了

审计时如果发现使用了文末列表的函数 就要检查是否禁用了外部实体

libxml_disable_entity_loader(true); //禁用外部实体使用到的函数 参数为true时禁用

注意: php环境中libxml 版本>=2.9.0时外部实体默认禁用 (PHP版本 >=8.0时 就开始使用>=2.9.0版本的libxmllibxml_disable_entity_loader函数被完全废弃 使用该函数会抛出错误)

漏洞常见处: 支付等回调api

函数 描述

DOMDocument::

loadXML

加载解析XML

<?php $xml=file_get_contents('php://input');

$dom=new DOMDocument(); $dom->loadXML($xml); $xml=simplexml_import_dom($dom); $xxe=$xml->xxe; echo $xxe; ?>

simplexml_load_string 加载解析XML字符串 $xml=simplexml_load_string($_REQUEST['xml']); print_r($xml);
simplexml_load_file 读取文件作为XML文档解析 simplexml_load_file("1.xml")

results matching ""

    No results matching ""