IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    finecms前台任意文件上传

    没穿底裤发表于 2017-06-15 19:34:00
    love 0

    前台头像上传的地方任意文件上传

        public function upload() {
    
            // 创建图片存储文件夹
            $dir = SYS_UPLOAD_PATH.'/member/'.$this->uid.'/';
            @dr_dir_delete($dir);
            !is_dir($dir) && dr_mkdirs($dir);
    
            if ($_POST['tx']) {
                $file = str_replace(' ', '+', $_POST['tx']);
                if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $file, $result)){
                    $new_file = $dir.'0x0.'.$result[2];
                    if (!@file_put_contents($new_file, base64_decode(str_replace($result[1], '', $file)))) {
                        exit(dr_json(0, '目录权限不足或磁盘已满'));

    接收txt的参数.然后匹配了正则.最后取出内容和文件后缀部分。再直接存盘.文件名都是统一的0x0


    仅仅是需要记住当前用户的id就可以搞定了

    webshell http://xxx.com//uploadfile/member/uid/0x0.php

    修复方案:

    if (preg_match('/^(data:\s*image\/(png|jpg|jpeg);base64,)/', $file, $result)){


沪ICP备19023445号-2号
友情链接