menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right ... chevron_right NewZhan CMS sql注入漏洞 chevron_right NewZhan CMS sql注入漏洞.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    NewZhan CMS sql注入漏洞.md
    1.71 KB / 2021-07-15 19:57:35
        NewZhan CMS sql注入漏洞
    =======================
    
    一、漏洞简介
    ------------
    
    二、漏洞影响
    ------------
    
    NewZhan CMS 商业版 2.4.1
    
    NewZhan CMS 个人版 2.6.3
    
    三、复现过程
    ------------
    
    ### 漏洞分析
    
    数据库操作函数对传入的数组仅仅对value进行了转义处理,并没有把key考虑在内,前台控制器可以通过提交POST
    控制key进行注入。 db\_mysql.class.php
    
        public function update($key, $data) {
    
        list($table, $keyarr, $keystr) = $this->key2arr($key);
    
        $s = $this->arr2sql($data);
    
        return $this->query("UPDATE {$this->tablepre}$table SET $s WHERE $keystr LIMIT 1", $this->wlink);
    
        }
    
        private function key2arr($key) {
    
        $arr = explode('-', $key);
    
    
        if(empty($arr[0])) {
    
        throw new Exception('table name is empty.');
    
        }
    
    
        $table = $arr[0];
    
        $keyarr = array();
    
        $keystr = '';
    
        $len = count($arr);
    
        for($i = 1; $i < $len; $i = $i + 2) {
    
        if(isset($arr[$i + 1])) {
    
        $v = $arr[$i + 1];
    
        $keyarr[$arr[$i]] = is_numeric($v) ? intval($v) : $v;
        // 因为 mongodb 区分数字和字符串
    
    
        $keystr .= ($keystr ? ' AND ' : '').$arr[$i]."='".addslashes($v)."'";
    
        } else {
    
        $keyarr[$arr[$i]] = NULL;
    
        }
    
        }
    
    
        if(empty($keystr)) {
    
        throw new Exception('keystr name is empty.');
    
        }
    
        return array($table, $keyarr, $keystr);
    
        }
    
    审计发现前台商品管理控制器有\$POST 数据传入update(\$data)可以触发SQL
    注入
    
    ![1.png](./resource/NewZhanCMSsql注入漏洞/media/rId25.png)
    
    ### 漏洞复现
    
    ![2.png](./resource/NewZhanCMSsql注入漏洞/media/rId27.png)![3.png](./resource/NewZhanCMSsql注入漏洞/media/rId28.png)![4.png](./resource/NewZhanCMSsql注入漏洞/media/rId29.png)
    
    
    links
    file_download