uplload 通关纪实 pass17
Posted 安全界 的彭于晏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uplload 通关纪实 pass17相关的知识,希望对你有一定的参考价值。
$is_upload = false;
$msg = null;
if (isset($_POST['submit']))
// 获得上传文件的基本信息,文件名,类型,大小,临时文件路径
$filename = $_FILES['upload_file']['name'];
$filetype = $_FILES['upload_file']['type'];
$tmpname = $_FILES['upload_file']['tmp_name'];
$target_path=UPLOAD_PATH.'/'.basename($filename);
// 获得上传文件的扩展名
$fileext= substr(strrchr($filename,"."),1);
//判断文件后缀与类型,合法才进行上传操作
if(($fileext == "jpg") && ($filetype=="image/jpeg"))
if(move_uploaded_file($tmpname,$target_path))
//使用上传的图片生成新的图片
$im = imagecreatefromjpeg($target_path);
if($im == false)
$msg = "该文件不是jpg格式的图片!";
@unlink($target_path);
else
//给新图片指定文件名
srand(time());
$newfilename = strval(rand()).".jpg";
//显示二次渲染后的图片(使用用户上传图片生成的新图片)
$img_path = UPLOAD_PATH.'/'.$newfilename;
imagejpeg($im,$img_path);
@unlink($target_path);
$is_upload = true;
else
$msg = "上传出错!";
else if(($fileext == "png") && ($filetype=="image/png"))
if(move_uploaded_file($tmpname,$target_path))
//使用上传的图片生成新的图片
$im = imagecreatefrompng($target_path);
if($im == false)
$msg = "该文件不是png格式的图片!";
@unlink($target_path);
else
//给新图片指定文件名
srand(time());
$newfilename = strval(rand()).".png";
//显示二次渲染后的图片(使用用户上传图片生成的新图片)
$img_path = UPLOAD_PATH.'/'.$newfilename;
imagepng($im,$img_path);
@unlink($target_path);
$is_upload = true;
else
$msg = "上传出错!";
else if(($fileext == "gif") && ($filetype=="image/gif"))
if(move_uploaded_file($tmpname,$target_path))
//使用上传的图片生成新的图片
$im = imagecreatefromgif($target_path);
if($im == false)
$msg = "该文件不是gif格式的图片!";
@unlink($target_path);
else
//给新图片指定文件名
srand(time());
$newfilename = strval(rand()).".gif";
//显示二次渲染后的图片(使用用户上传图片生成的新图片)
$img_path = UPLOAD_PATH.'/'.$newfilename;
imagegif($im,$img_path);
@unlink($target_path);
$is_upload = true;
else
$msg = "上传出错!";
else
$msg = "只允许上传后缀为.jpg|.png|.gif的图片文件!";
首先上传一张gif图片,如下图所示:
之后我们下载我们上传的gif文件即回显的图片,不过文件名会发生改变,之前上传的是17.gif,然后下载下来就变成了11550.gif:
然后我们在里面加上一句话木马,如下图所示:
然后我们上传我们修改过的下载下来的回显图片(即刚刚那个11550.gif),然后发现文件名又一次发生了改变:
然后利用文件包含漏洞,构造如下网址连接菜刀:
http://192.168.74.145/upload-labs/include.php?file=upload/4288.gif
成功访问到:
以上是关于uplload 通关纪实 pass17的主要内容,如果未能解决你的问题,请参考以下文章