基于文件内容的上传检测安全吗?

通过上两次的分析,前端,服务端都已经防不住不安全的文件上传,那么基于

文件内容的上传检测可以防住吗?

基于文件内容的检测的原理是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();
?>

  

 

 上传成功!

posted @ 2020-09-19 20:35  ccddddddddd  阅读(231)  评论(0)    收藏  举报