查看: 10681|回复: 0

phpcms_v9.3.2某管理模块逻辑校验漏洞

[复制链接]
  • TA的每日心情

    2024-12-14 22:22
  • 签到天数: 1631 天

    [LV.Master]伴坛终老

    发表于 2013-8-28 09:34:34 | 显示全部楼层 |阅读模式
    在文件\modules\sms\sms.php中:

    1. class sms extends admin {

    2.         function __construct() {
    3.                 $this->log_db = pc_base::load_model('sms_report_model');
    4.                 $this->module_db = pc_base::load_model('module_model');
    5.                 $this->member_db = pc_base::load_model('member_model');
    6.                
    7.                 //获取短信平台配置信息
    8.                 $siteid = get_siteid();
    9.                 $this->sms_setting_arr = getcache('sms');
    10.                 if(!empty($this->sms_setting_arr[$siteid])) {
    11.                         $this->sms_setting = $this->sms_setting_arr[$siteid];
    12.                 } else {
    13.                         $this->sms_setting = array('userid'=>'', 'productid'=>'', 'sms_key'=>'');
    14.                 }
    15.                
    16.                 //初始化smsapi
    17.                 pc_base::load_app_class('smsapi', '', 0);
    18.                 $this->smsapi = new smsapi($this->sms_setting['userid'], $this->sms_setting['productid'], $this->sms_setting['sms_key']);
    19.         }
    复制代码
    类sms作为子类,类admin作为父类。而phpcms的后台功能权限校验是放在父类admin的构造函数中,但是子类sms在继承父类admin后,在sms的构造函数function __construct()中并没有调用父类的构造函数,即sms该类的没有任何权限校验。导致可以直接使用该模块的管理功能。
    与其他模块\modules\tag\search_admin.php对比:

    1. class search_admin extends admin {
    2.         function __construct() {
    3.                 parent::__construct(); //父类admin的构造函数,有权限校验功能
    4.                 $this->siteid = $this->get_siteid();
    5.                 $this->db = pc_base::load_model('search_model');
    6.                 $this->module_db = pc_base::load_model('module_model');
    7.                 $this->type_db = pc_base::load_model('type_model');
    8.         }
    复制代码
    对比sms类的构造函数中缺少了调用父类的构造函数parent::__construct();
    而phpcms的管理权限校验功能放在父类admin的构造函数中
    漏洞证明:
    构造数据POST,可以直接修改sms模块的配置信息
    1. localhost/index.php?m=sms&c=sms&a=setting
    复制代码
    修复方案:
    增加缺失的构造函数

    作者: Code_Sec
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-12-28 12:42 , Processed in 0.024016 second(s), 12 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部