任意文件上传漏洞修复

 一、/include/dialog/select_soft_post.php文件,搜索(大概在72行的样子)
      $fullfilename = $cfg_basedir.$activepath.'/'.$filename;
      修改为
      if (preg_match('#\.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0-9]+$#i', trim($filename))) { ShowMsg("你指定的文件名被系统禁止!",'javascript:;'); exit(); } $fullfilename = $cfg_basedir.$activepath.'/'.$filename;;

  二、后台文件任意上传漏洞

      /dede/media_add.php或者/你的后台名字/media_add.php

   搜索$fullfilename = $cfg_basedir.$filename;(大概在69行左右)
      替换成      
      if (preg_match('#\.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0-9]+$#i', trim($filename))) { ShowMsg("你指定的文件名被系统禁止!",'javascript:;'); exit(); } $fullfilename = $cfg_basedir.$filename;

     三、 /include/uploadsafe.inc.php (有2个地方:)

  1、搜索 ${$_key.'_size'} = @filesize($$_key);
      }
      (大概在42,43行左右)
      替换成    
      ${$_key.'_size'} = @filesize($$_key); 
      } $imtypes = array("image/pjpeg", "image/jpeg", "image/gif", "image/png", "image/xpng", "image/wbmp", "image/bmp"); if(in_array(strtolower(trim(${$_key.'_type'})), $imtypes)) { $image_dd = @getimagesize($$_key); if($image_dd == false){ continue; } if (!is_array($image_dd)) { exit('Upload filetype not allow !'); } }
      如果修改后出现文章页面空白页,请仔细查看代码是否多了或者少了大括号},本文件44行是空的,没有代码,请注意。

      2、搜索 $image_dd = @getimagesize($$_key);(大概在53行左右)
      替换成     
      $image_dd = @getimagesize($$_key); if($image_dd == false){ continue; }

     老规矩大红色地方标记了修改的地方,然后保存,接着备份原文件,比如文件名变为uploadsafe.inc.php.16.08.09.bak。然后上传修改好的文件即可。

猜你喜欢

转载自blog.csdn.net/qq_31763129/article/details/80252100