UploadLabs Less12-21

白名单绕过

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

UploadLabs Less12-21_第1张图片

失败-我的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右键

UploadLabs Less12-21_第2张图片

Less-14-图片木马

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

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

UploadLabs Less12-21_第3张图片

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

UploadLabs Less12-21_第4张图片

UploadLabs Less12-21_第5张图片

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

UploadLabs Less12-21_第6张图片

Less-15-图片木马

得到图片信息,图片马

UploadLabs Less12-21_第7张图片

 与14关同样的手法

Less-16-图片木马

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

UploadLabs Less12-21_第8张图片

 与14关同样的手法

Less-17-条件竞争

UploadLabs Less12-21_第9张图片抓包

UploadLabs Less12-21_第10张图片

UploadLabs Less12-21_第11张图片 

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

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

UploadLabs Less12-21_第12张图片

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

'); ?>

上传抓包

UploadLabs Less12-21_第13张图片

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

UploadLabs Less12-21_第14张图片

 都修改有效载荷

UploadLabs Less12-21_第15张图片

UploadLabs Less12-21_第16张图片 

UploadLabs Less12-21_第17张图片 

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

UploadLabs Less12-21_第18张图片

Less-19-图片马文件包含

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

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

UploadLabs Less12-21_第19张图片

UploadLabs Less12-21_第20张图片 

Less-20-文件夹方式上传

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

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

UploadLabs Less12-21_第21张图片

 抓包修改文件夹路径

UploadLabs Less12-21_第22张图片

改为

UploadLabs Less12-21_第23张图片

上传成功

UploadLabs Less12-21_第24张图片

 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/.更保险抓包进行修改

UploadLabs Less12-21_第25张图片 

xxx.php上传成功

UploadLabs Less12-21_第26张图片 

 

你可能感兴趣的:(Upload,Labs,php,开发语言,web安全,网络安全,安全)