文件上传
一、client check
上传一个图片1.jpg并抓包,修改图片名为一句话木马1.php,发包,上传成功。
因而猜想本关是前端验证上传的文件。试试,直接在在浏览器禁用js,然后直接上传1.php,发现上传成功。
这里直接上传php文件BP抓不到包,由此也能猜想到时前端验证文件后缀。
二、MIME Type
看到这里估计是更改Content-Type(浏览器告知服务器的)来绕过的。抓包修改为image/jpeg,成功绕过。
访问一下
三、getimagesize()
通过getimagesize()获取文件属性。
上传1.php并抓包。Content-Type改为image/jpeg,发包试试,不行。
看回显说后缀名为空,想必后缀名可能必须时jpg之类的,考虑一下%00.jpg试试。
说是假图片。可能时检测文件头部信息,加上图片头部信息试试,如gif头部GIF89a?,然后上传成功了。
注:这里也可以自行在图片头部加上GIF89a?,然后上传。