网站地图    收藏   

主页 > 后端 > 网站安全 >

shopex注册用户任意定义预存款余额或积分 - 网站

来源:自学PHP网    时间:2015-04-17 10:15 作者: 阅读:

[导读] shopex在注册用户时存在验证不严,导致注册时可以随意定义预存款余额或积分等字段的内容在文件\core\shop\controller\ctl.passport.phpif( !$info = $account-create($_POST,$message) ) { ......

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]);
    }
}

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


 


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


修复方案:

注意大小写

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论