上传问题

setup1、上传文件。

setup2、再次访问上传的文件。

setup3、上传的文件被当成程序解析

例如:如果这个文件是PHP文件那么、在URL访问中把php文件进行执行。那么这种php里面代码有可能执行脚本。

上传漏洞案例

在phpcms中、出现了一起、

图

在前端经过了验证 、但是在传输的途中被篡改了。在网络层的包替换掉了。也就是后台没有做验证。

上传问题的防御

1、限制上传后缀

利用PHP函数

$info=pathinfo($file);
$info['extension'];

2、文件类型检查

图

也就是文件类型type、也就是mime 这个是浏览器给的。也不是100%可靠。

3、文件内容的检查

用PHP函数进行查看文件内容或文件类型

$info=finfo_file(finfo_open(),$_FILES['img']['tmp_name']);
var_dump($info);

相对靠谱

4、程序输出

if($_GET['down']){
   $file=file_get_contents('./test.php');
   header('Content-Type:'text/plain);
   die($file);
}

是指程序输出然后直接返回。(但是降低性能)。

5、权限控制-可写可执行互斥

例如上传的执行文件是php、那么我可以把文件夹设置的可写、不可读。或可读不可写。

或上传的服务器是第三方服务器。即可解决。

像PHP的所有组不是root权限。如果被攻破了后。不会销毁服务器。

Last modification:January 22, 2020
如果觉得我的文章对你有用,请随意赞赏