赞
踩
目录
(1)首先当然是需要phpstudy的环境,所以要先下载安装phpstudy。
(2)然后到github的网址中下载源码的压缩包。
github网址:https://github.com/Tj1ngwe1/upload-labs
(3)下载后解压缩到phpstudy目录下的WWW子文件夹中,这里要注意把压缩包的名字改成upload-labs,不然靶场的页面会显示得不对。
(4)然后在输入url HTTPS://127.0.0.1/upload-labs/就可以访问靶场。
通关时对后缀名单操作可通过burp抓包实现。
首先观察页面,需要上传一个文件。我们先尝试进行上传。
发现页面进行了提示,根据提示信息我们知道上传的途中对文件的后缀名进行了验证。用弹窗进行错误提示的话证明是运用了前端验证。
这时我们有几种不同的解决办法。
(1)首先第一种,F12找到验证部分的代码,然后删除,就可以上传。
(2)第二种方法是增加要上传的文件类型,跟第一种方法一样,也是找到代码所在位置进行修改即可。
(3)第三种方法是我们先将要上传的文件后缀名修改成页面允许上传的类型,这样在点击上传后就可以通过前端的验证,用burp工具进行抓包,在burp中将文件后缀名改回原本想要上传的格式,再进行上传,这样就可以上传我们想要的类型文件而不会被前端的验证拦截。
这里代表上传文件成功。
上传的文件在upload目录下。(如果没有的话在WWW中的upload-labs里自己手动建一个,不然会报错),最终上传的文件为html类型的文件。
进入页面发现还是需要上传一个文件,我们先上传看看回显情况。
上传了一个文件名后缀为.php的文件后提示类型错误,错误回显的方式不是弹窗,是页面直接提示,所以不是前端验证。查看一下源码。
$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
if (file_exists($UPLOAD_ADDR)) {
if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) {
if (move_uploaded_file($_FILES['upload_file']['tmp_name'], $UPLOAD_ADDR . '/' . $_FILES['upload_file']['name'])) {
$img_path = $UPLOAD_ADDR . $_FILES['up
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。