upload-labs靶场记录

文章发布时间:

文章总字数:
362

upload-labs通关记录

Pass-01 前端校验

抓包上传文件,发现没有抓到数据包就直接弹窗提示不允许上传,说明是前端校验,可以f12查看页面源码

利用

  1. 上传后抓包修改后缀名

首先是php后缀改为png或者其他符合要求,之后上传抓包再改回php,就可以绕过前端校验

  1. 禁用js

前端是js代码进行的校验,可以f12打开,在设置中debug下有一个关闭js的选项,然后就可以正常进行上传php文件了

  1. 修改前端代码

劫持响应后,删除前端校验的那部分代码,之后再去直接上传php文件也是可以的了

Pass-02

发送数据包后发现是后端校验,查看代码MIME

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$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.'文件夹不存在,请手工创建!';
}
}

所以只需要在上传的时候修改数据包的MIME类型就可以了

Pass-03