基于文件内容的上传检测安全吗?
通过上两次的分析,前端,服务端都已经防不住不安全的文件上传,那么基于
文件内容的上传检测可以防住吗?
基于文件内容的检测的原理是getimagesize(string filename) 函数。
函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP
图像文件的大小并返回图像的尺寸以及文件类型及图片高度与宽度。即函数会通过读取文件头,
返回图片的长、宽等信息,如果没有相关的图片文件头,函数会报错。
可以看到,High级别的代码读取文件名中最后一个”.”后的字符串, 即取最后一个后缀,
期望通过文件名来限制文件类型,因此要求上传文件名形式必须是”*.jpg”、”*.jpeg” 、”*.png”之一。
同时,getimagesize函数更是限制了上传文件的文件头必须为图像类型。
我们首先抓包,看一看能不能绕过。‘


失败了,
那么我们可以写个脚本,放到数据包里用。
GIF89
<?php
phpinfo();
?>

浙公网安备 33010602011771号