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

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

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

- 修改前端代码
劫持响应后,删除前端校验的那部分代码,之后再去直接上传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