挖洞——某个大学上传

在翻灯塔的资产的时候看到了某个大学的某个服务存在注册,遂注册了一个账户上去看看

发现可以其中可以传输文件,常见的文件绕过点了一通发现存在白名单,通过报错把他的上传逻辑搞出来了

[8] ErrorException in Upload.php line 108
getimagesize(): Read error!
            return true;
        }
        throw new UploadException(__('Uploaded file format is limited'));
    }

    protected function checkImage($force = false)
    {
        //验证是否为图片文件
        if (in_array($this->fileInfo['type'], ['image/gif', 'image/jpg', 'image/jpeg', 'image/bmp', 'image/png', 'image/webp']) || in_array($this->fileInfo['suffix'], ['gif', 'jpg', 'jpeg', 'bmp', 'png', 'webp'])) {
            $imgInfo = getimagesize($this->fileInfo['tmp_name']);
            if (!$imgInfo || !isset($imgInfo[0]) || !isset($imgInfo[1])) {
                throw new UploadException(__('Uploaded file is not a valid image'));
            }
            $this->fileInfo['imagewidth'] = isset($imgInfo[0]) ? $imgInfo[0] : 0;
            $this->fileInfo['imageheight'] = isset($imgInfo[1]) ? $imgInfo[1] : 0;
            return true;
        } else {
            return !$force;
        }

的确是一个白名单。。。还过了getimagesize,不好绕

在测试过程中还发现了,他能传pdf本来想尝试下pdfxss,但是。。。

https://mok.moe/p/ot80

image.png

遂去问了一嘴

image.png