BWVS-上传漏洞

0x00 前言

这个不用多说了,搞起来,推荐看看这个Upload-labs


0x01 Apache文件解析漏洞 /user/updateAvatar.php

BWVS-上传漏洞_第1张图片
太不走心了。。。
BWVS-上传漏洞_第2张图片
其实就是在修改用户头像的地方。
BWVS-上传漏洞_第3张图片
先传一个php上去。
BWVS-上传漏洞_第4张图片
速度太慢了,明显前端限制。
BWVS-上传漏洞_第5张图片
那就改改呗,改完了以后。。。
BWVS-上传漏洞_第6张图片
这里就不试了,直接看源码


include_once('../bwvs_config/sys_config.php');
$uploaddir = '../favicon';
define("File_Max_Size","1024000");
define("File_Min_Size","1024");
if (isset($_POST['submit']) && isset($uploaddir)){
        $Avatar_name = $_FILES['upfile']['name'];//获取文件名
        $Avatar_type = $_FILES['upfile']['type'];//获取文件类型
        $Avatar_size = $_FILES['upfile']['size'];//获取文件大小
        $Avatar_ext = strrchr($Avatar_name, '.');//获取文件扩展名
    if (Upfile_type($Avatar_type) && FileExt_Cheak($Avatar_ext) && $Avatar_size > File_Min_Size && $Avatar_size < File_Max_Size){
                date_default_timezone_set("Asia/Shanghai");
                        $time = date("Ymdhms");
                $Avatar_rand_name = rand(0,100).$time.rand(0,100);
                $Avatar_ext = strchr($Avatar_name, ".");
                $Avatar_name = "$Avatar_rand_name"."$Avatar_ext";
        move_uploaded_file($_FILES['upfile']['tmp_name'], $uploaddir . '/' . $Avatar_name);

        echo '文件上传成功,保存于:' . $uploaddir . '/' . $Avatar_name . "\n";

                $User_avatar = $uploaddir . '/' . $Avatar_name;
                $Sql = "UPDATE dwvs_user_message SET DWVS_user_favicon = '$User_avatar' WHERE DWVS_user_id = '{$_SESSION['user_id']}'";

                mysqli_query($connect,$Sql) or die('Mysql error!');
                mysqli_close($connect);

                $_SESSION['user_favicon'] = $User_avatar;
                header('Location: edit.php');
    }
        else {
                echo '图片上传失败!
'
; echo '返回'; } }else { not_find($_SERVER['PHP_SELF']); } ?>

有检查文件类型和扩展,还有waf,继续看

               function Upfile_type($str)
        {
                $File_Type_White_List = array("image/jpg","image/gif","image/png","image/jpeg","image/x-png","image/pjpeg");
                if(in_array($str,$File_Type_White_List))
                {
                        return 1;
                }
                else
                {
                        return 0;
                }
        }

            function FileExt_Cheak($str)
            {
                        $File_Type_Black_List = array('.asp','.asa' ,'.cer', '.jspx',' .jspf','.aspx','.jsp','.php','.php3','.php4','.PHP','.exe','.exee');
                        if(in_array($str, $File_Type_Black_List)){
                                return 0;
                        }else{
                                return 1;
                        }

            }

做了黑名单,用图片马加上解析漏洞就可以了,另外要大于1KB小于1MB
BWVS-上传漏洞_第7张图片
成功上传,查看头像的地址。
BWVS-上传漏洞_第8张图片
访问一下,应该可以正常解析的,我的apache是配置了错误解析。。。
BWVS-上传漏洞_第9张图片
傻了,可能是没给写权限,给了权限后,再来一次。
BWVS-上传漏洞_第10张图片
来了,走起。
BWVS-上传漏洞_第11张图片


0x02 任意文件上传漏洞 /bug/file_upload/any_upload.php

BWVS-上传漏洞_第12张图片
这个不说了,简单


0x03 JS限制文件上传 /bug/file_upload/upload_js.php

有前端限制,直接就可以了。

BWVS-上传漏洞_第13张图片


0x04 MIME限制文件上传 /bug/file_upload/upload_mime.php

直接改content-Type就行了。
BWVS-上传漏洞_第14张图片
传不上去什么鬼。。。看了半天,自己又好了,,服了
BWVS-上传漏洞_第15张图片


0x05 扩展名限制文件上传 /bug/file_upload/upload_name.php

一般起这个名字都是黑名单了,用php3。。。
BWVS-上传漏洞_第16张图片
只要有对应的解析,都是可以成功的,还是建议做白名单。


0x06 内容限制文件上传 /bug/file_upload/upload_content.php

简单一点的用文件头就可以过了,试试看。
BWVS-上传漏洞_第17张图片
不行阿,上图片马。。。
BWVS-上传漏洞_第18张图片
好了,去看看原因,可能真的是人品差,没看出来问题,看来直接加的文件头不得劲。。。

你可能感兴趣的:(#,BWVS)