upload-labs安装及攻略

目录

upload-labs靶场的安装搭建(windows)

upload-labs靶场攻略

Pass-01

Pass-02

Pass-03

Pass-04

Pass-05~Pass-07

Pass-08

Pass-09

Pass-10

 Pass-11~Pass-12

Pass-13~Pass-16

Pass-17~Pass-18

Pass-19


upload-labs靶场的安装搭建(windows)

(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/就可以访问靶场。


upload-labs靶场攻略

通关时对后缀名单操作可通过burp抓包实现。

Pass-01

首先观察页面,需要上传一个文件。我们先尝试进行上传。

发现页面进行了提示,根据提示信息我们知道上传的途中对文件的后缀名进行了验证。 用弹窗进行错误提示的话证明是运用了前端验证。

这时我们有几种不同的解决办法。

(1)首先第一种,F12找到验证部分的代码,然后删除,就可以上传。

(2)第二种方法是增加要上传的文件类型,跟第一种方法一样,也是找到代码所在位置进行修改即可。

(3)第三种方法是我们先将要上传的文件后缀名修改成页面允许上传的类型,这样在点击上传后就可以通过前端的验证,用burp工具进行抓包,在burp中将文件后缀名改回原本想要上传的格式,再进行上传,这样就可以上传我们想要的类型文件而不会被前端的验证拦截。

 这里代表上传文件成功。

 上传的文件在upload目录下。(如果没有的话在WWW中的upload-labs里自己手动建一个,不然会报错),最终上传的文件为html类型的文件。


Pass-02

进入页面发现还是需要上传一个文件,我们先上传看看回显情况。

 上传了一个文件名后缀为.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['upload_file']['name'];
                $is_upload = true;

            }
        } else {
            $msg = '文件类型不正确,请重新上传!';
        }
    } else {
        $msg = $UPLOAD_ADDR.'文件夹不存在,请手工创建!';
    }
}

其中如图中框住的代码部分可以看出,上传文件的途中是验证了content-type,并且固定了可以上传的文件类型。关于content-type的相关信息可以参考这篇博客。

  • 33
    点赞
  • 208
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值