XXE白盒审计 PHP
程序员文章站
2022-06-15 11:53:11
XXE与XML注入的区别 https://www.cnblogs.com/websecurity study/p/11348913.html XXE又分为内部实体和外部实体。我简单区分为内部实体就是自己构造一个功能体,外部实体就是可以引入外部文件。 原理 服务器加载外部实体声明``,导致被入侵。如下 ......
xxe与xml注入的区别
xxe又分为内部实体和外部实体。我简单区分为内部实体就是自己构造一个功能体,外部实体就是可以引入外部文件。
原理
服务器加载外部实体声明<!entity 实体名称 system "uri">
,导致被入侵。如下用php语言举例。
php代码案例:
$xmlfile = file_get_contents("php://input"); // php://input 是个可以访问请求的原始数据的只读流。 获取客户端输入的内容 $dom = new domdocument(); // 初始化xml解析器 $dom->loadxml($xmlfile); // 加载客户端输入的xml内容 $xml = simplexml_import_dom($dom); // 获取xml文档节点,如果成功返回simplexmlelement对象,如果失败返回flase $xxe = $xml->xxe; //获取simplexmlelement对象中的节点 xxe $str = "$xxe \n"; echo $str;
防止的xxe,一行代码解决:
检测
黑盒检查:
建议查看
白盒检测:
查看代码里面是否使用了lodxml( )函数。
防护
// 在加载文档代码上面声明 libxml_disable_entity_loader(true); //禁止使用外部实体
上一篇: 处暑广东吃什么传统食物?快进来看