?

Jul 17 2017

FineCMS SYS_KEY未初始化導致任意文件寫入

首頁 » 漏洞收集 » FineCMS SYS_KEY未初始化導致任意文件寫入   

起初我以為這個sys_key是隨機生成的.然后我本地和vps上發現都是一樣的.最后去看了下源碼發現沒有生成這個值的地方.最后的最后看了開源的地址http://git.oschina.net/dayrui/finecms/blob/master/v5/config/system.php

發現是固定值 24b16fede9a67c9251d3e7c7161c83ac

文件:finecms/dayrui/controllers/Api.php

/**
 * 自定義數據調用(新版本)
 */
publicfunctiondata2() {
 
    $data=array();
 
    // 安全碼認證
    $auth=$this->input->get('auth', true);
    if($auth!= md5(SYS_KEY)) {
        // 授權認證碼不正確
        $data=array('msg'=>'授權認證碼不正確','code'=> 0);
    }else{
        // 解析數據
        $cache='';
        $param=$this->input->get('param');
        if(isset($param['cache']) &&$param['cache']) {
            $cache= md5(dr_array2string($param));
            $data=$this->get_cache_data($cache);
        }
        if(!$data) {
 
            if($param=='login') {
                // 登錄認證
                $code=$this->member_model->login(
                    $this->input->get('username'),
                    $this->input->get('password'),
                    0, 1);
                if(is_array($code)) {
                    $data=array(
                        'msg'=>'ok',
                        'code'=> 1,
                        'return'=>$this->member_model->get_member($code['uid'])
                    );
                }elseif($code== -1) {
                    $data=array('msg'=> fc_lang('會員不存在'),'code'=> 0);
                }elseif($code== -2) {
                    $data=array('msg'=> fc_lang('密碼不正確'),'code'=> 0);
                }elseif($code== -3) {
                    $data=array('msg'=> fc_lang('Ucenter注冊失敗'),'code'=> 0);
                }elseif($code== -4) {
                    $data=array('msg'=> fc_lang('Ucenter:會員名稱不合法'),'code'=> 0);
                }
            }elseif($param=='update_avatar') {
                // 更新頭像
                $uid= (int)$_REQUEST['uid'];
                $file=$_REQUEST['file'];
                //
                // 創建圖片存儲文件夾
                $dir= SYS_UPLOAD_PATH.'/member/'.$uid.'/';
                @dr_dir_delete($dir);
                if(!is_dir($dir)) {
                    dr_mkdirs($dir);
                }
                $file=str_replace(' ','+',$file);
                if(preg_match('/^(data:\s*image\/(\w+);base64,)/',$file,$result)){
                    $new_file=$dir.'0x0.'.$result[2];
                    if([email protected]_put_contents($new_file,base64_decode(str_replace($result[1],'',$file)))) {
                        $data=array(
                            'msg'=>'目錄權限不足或磁盤已滿',
                            'code'=> 0
                        );
                    }

之前的一樣.正則獲取的地方有問題.image后面的值為任意值.導致悲劇的發生


778933998.png


3251241459.png

如果您喜歡本博客,歡迎點擊圖片定訂閱到郵箱填寫您的郵件地址,訂閱我們的精彩內容:

正文部分到此結束

文章標簽:這篇文章木有標簽

版權聲明:若無特殊注明,本文皆為( mOon )原創,轉載請保留文章出處。

也許喜歡: «Xshell后門事件中用到的DNS Tunneling技術分析 | OrientDB <=2.22 代碼執行»

你腫么看?

你還可以輸入 250/250 個字

? 微笑 大笑 拽 大哭 親親 流汗 噴血 奸笑 囧 不爽 暈 示愛 害羞 吃驚 驚嘆 愛你 嚇死了 呵呵

評論信息框

已有1條評論

匿名

2017-08-18 16:12 沙發
更詳細:https://www.seebug.org/vuldb/ssvid-93209
?
?
河北11选5开奖