2024宁波赛线下赛AWD

全场都上waf没得玩。web手纯坐牢

Image description

任意文件下载

Image description
download函数中input没有任何过滤。可以这就造成了任意文件下载的漏洞
Image description
这样就能下载到文件

fix

Image description
    public function download()
    {
        $input = input();
        $arry=['../','flag','.','..','/',' ','php'];
        foreach ($arry as $unsafe){
            if(strpos($input['url'],$unsafe)){
                echo "nonono";
                return ;
            }//首字符串出现的位置
        }
        return download(public_path() . $input['url'], $input['title']);
    }

命令执行-预留

位于public\themes\template\404.html

Image description
触发条件就是直接访问一个不存在的php文件。例如/none.php,他会将404.html给包含进来,包含进来了就相当于把这段代码包含进来。从而实现rce或者一些命令执行的操作 这里可以用error类或者exception类来实现
Image description

Error类介绍

Image description
Image description

Exception类介绍

Image description
Image description

任意文件上传

漏洞点在Controller/File.php中,利用是需要进入admin后台才可以利用的。利用点在头像上传那。

Image description
Image description

fix

        $extcheck=strtolower($uploadFile->getExtension());#把传进来都变成小写
        $allowext=['png','jpg','jpeg','gif'];#直接白名单就好了
        if(!in_array($extcheck,$allowext)){
            throw new ErrorException("you can't upload other extion file");
        }
Image description

This article was updated on June 28, 2024