pass-2
打开靶场
提示这关与mime进行检查。
所以我们上传1.php文件并且抓包。
抓到包,我们修改对应的Content-Typed的类型为image/jpeg来伪造数据,让后端以为我们传入的是一个图片文件。
点击发送查看回传,复制图片的链接。
打开蚁剑,测试连接。
连接成功,说明上传成功。
查看源代码
$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {if (file_exists(UPLOAD_PATH)) {if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) {$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = UPLOAD_PATH . '/' . $_FILES['upload_file']['name'] if (move_uploaded_file($temp_file, $img_path)) {$is_upload = true;} else {$msg = '上传出错!';}} else {$msg = '文件类型不正确,请重新上传!';}} else {$msg = UPLOAD_PATH.'文件夹不存在,请手工创建!';}
}
可以看到后端对文件传入类型进行了判断,而我们通过抓包修改了对应的类型,绕过了检验,造成了漏洞的产生。