getshell一般理解为获取权限,执行代码。比较典型的是上传包含可执行代码的文件,比如在PHP网站中上传.php文件。
利用Laravel框架自建博客时,上传文件的后缀没有做判断,导致可以直接上传.php文件,埋下了getshell漏洞.
防止这种漏洞方法:
1,对上传的文件后缀名进行判断
$file = $request->file('imageLocalInput'); $fileName = $file->getClientOriginalName(); $ext_array = array( 'png', 'jpg', 'jpeg', 'gif'); $extension = $file->getClientOriginalExtension(); // 检查文件后缀名 if(in_array($extension, $ext_array)){ }
2,对上传文件的mime类型进行判断
$image_info = getimagesize($file["tmp_name"]); $mime=$image_info['mime']; $mime_arr = array( 'image/png', 'image/jpep' ); if(in_array($mime,$mime_arr)){ }
Leave a Reply