shopex注册用户任意定义预存款余额或积分漏洞预警 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    简要描述:

    shopex在注册用户时存在验证不严,导致注册时可以随意定义预存款余额或积分等字段的内容

    详细说明:

    在文件\core\shop\controller\ctl.passport.php

    if( !$info = $account->create($_POST,$message) ) {

    $this->splash('failed','back',$message,'','',$_POST['from_minipassport']);

    }

    用户注册的变量都保存在$_POST中,继续看根目录文件index.php

    filterData($_POST);

    require CORE_DIR.'/include_v5/shopCore.php';

    return new shopCore();

    //过滤字段

    function filterData(&$data) {

    static $black_list = array(

    'order_num','advance','advance_freeze','point_freeze','point_history','member_lv_id',

    'point','score_rate','state','role_type','advance_total','advance_consume',

    'experience','login_count',

    );

    foreach($black_list as $v) {

    unset($data[$v]);

    }

    }

    显然已经意识到这些重要的字段是不允许通过客户端去赋值的,但是没注意大小写的问题,

shopex注册用户任意定义预存款余额或积分漏洞预警

电脑资料

shopex注册用户任意定义预存款余额或积分漏洞预警》(https://www.unjs.com)。

   

    漏洞证明

   

    注册后用户的预存款余额已经变为99999

    修复方案:

    注意大小写

最新文章