極致CMS兩處漏洞復現/存儲xss/文件上傳Getshell


0x00產品介紹

影響產品/版本:

極致CMS

=>v 1.5 <=v 1.7

廠商目前已修復

見官網更新

0x01測試過程:

漏洞名稱:存儲xss,前台打后台管理員cookie

黑盒過程:

首先我們在后台創建一個允許用戶發布文章的欄目

前台發表文章,xss在標題位置

來到后台,點開標題,成功彈框

成功執行與存儲


打COOKIE試試,成功獲取cookie


成功獲取cookie,因為是本地演示的,所以就不用xss平台來打了

白盒過程:

根據一路追蹤
發現目錄A是網站目錄的后台文件,后端文件審計沒問題
來看看前端文件tql
代碼審計發現是問題出現在前端文件article-list.html內的問題
191行 這里這里沒有實體化編碼導致的后台存儲xss漏洞
輸出函數未經過濾沒有實體化編碼

}
                ,cols: [[ //表頭
                  {field: 'id', title: 'ID', width:50, sort: true, fixed:'left'}
                  ,{type:'checkbox'}
                  ,{field: 'orders', title: '排序', width: 100, edit:'text',sort: true}
                  ,{field: 'new_tid', title: '欄目', sort: true}
                  ,{field: 'tuijian', title: '推薦', templet: '#tuijian'}
                  ,{field: 'title', title: '標題', edit:'text', sort: true}
                  ,{field: 'new_litpic', title: '縮略圖',templet: '#litpic'} 
                  {foreach $fields_list as $v},{field: '{$v['field']}', title: '{$v['fieldname']}'}{/foreach}
                  ,{field: 'new_isshow', title: '審核',width:100, templet: '#isshow'}
                  ,{field: 'new_addtime', title: '時間'}
                  {if(checkAction('Article/editarticle') || checkAction('Article/deletearticle') || checkAction('Article/copyarticle'))}
                  ,{field: '', title: '操作',width:280, toolbar: '#rightbar', fixed:'right'}
                  {/if}

                ]]
              })

文件article-list.html

修復建議 1.去掉該功能,很雞肋。沒鳥用
2.在輸出函數上實體化編碼
3.文章發表那塊增加xss等過濾函數

漏洞2:文件上傳,Getshell

極致cms >=1.5 <= v1.7 版本存在直接Getshell漏洞

黑盒過程:

進入后台發現了一個有意思的東西后台--->系統設置--->基本設置--->高級設置http://localhost/admin.php/Index/index.html

這里可以設置允許前台上傳文件,還可以設置文件類型,如果是加入PHP后綴的,結果如何?后台拿不到shell,前台不直接打了嗎。

去看看前台上傳點 (http://localhost/login/index.html) 在這里注冊一個用戶登錄進去,點擊發布文章


上傳成功,右鍵點擊訪問上傳的php文件

白盒過程:

在安裝的時候,系統會默認寫入一個允許上傳的文件類型到數據庫,再配合上允許前台上傳這個功能,可直接后台修改,成功上傳php文件/install/db.php
INSERT INTO `jz_sysconfig` (`id`,`field`,`title`,`tip`,`type`,`data`) VALUES ('21','fileType','允許上傳文件類型', NULL,'0','pdf|jpg|jpeg|png|zip|rar|gzip|doc|docx|xlsx');
增加PHP后綴到后台即可


再看前台用戶上傳處的檢查/Home/c/CommonController.php

//檢測是否允許前台上傳文件
        if(!$this->webconf['isopenhomeupload']){
           $data['error'] =  "Error: 已關閉前台上傳文件功能";
           $data['code'] = 1004;
           JsonReturn($data);
        }
        foreach($_FILES[$file]['name'] as $k=>$v){
            $pix = explode('.',$v);
            $pix = end($pix);
            $fileType = webConf('fileType');
            if(strpos($fileType,strtolower($pix))===false){
                $data['error'] =  "Error: 文件類型不允許上傳!";
                $data['code'] = 1002;
                JsonReturn($data);
            }

Ok這里很明了,只與設置的允許上傳類型做了對比


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM