如果只是在前端通过 JS 判断文件后缀,可以直接禁用浏览器的 JS,或者使用 Burp Suite 抓包,将 shell.php 的后缀在上传前修改。
后端代码检查了 Content-Type?抓包将:
Content-Type: application/octet-stream
修改为:
Content-Type: image/jpeg
即可欺骗后端。
如果在 Windows 环境下,可以制作图片马:
copy normal.jpg/b + shell.php/a webshell.jpg
结合文件包含漏洞,即可执行图片中的 PHP 代码。