upload-labs靶场学习记录2
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.'文件夹不存在,请手工创建!';
}
}
可以看到后端对文件传入类型进行了判断,而我们通过抓包修改了对应的类型,绕过了检验,造成了漏洞的产生。