来源:自学PHP网 时间:2015-04-15 15:00 作者: 阅读:次
[导读] 搜了下,发现 app seller_groupbuy app php里面还有6处注入:分别是该文件下drop(),start(),finished(),desc(),cancel(),log()函数中的id参数以finished()为例:function finished() {...
搜了下,发现/app/seller_groupbuy.app.php里面还有6处注入:
分别是该文件下drop(),start(),finished(),desc(),cancel(),log()函数中的id参数
以finished()为例:
function finished() { $id = empty($_GET['id']) ? 0 : $_GET['id'];//id参数未过滤 if (!$id) { $this->show_warning('no_such_groupbuy'); return false; } if (!$this->_ican($id, ACT)) //进入_ican函数,跟进 { $this->show_warning('Hacking Attempt'); return; } /* 团购信息 */ $group = $this->_groupbuy_mod->get(array( 'conditions' => 'group_id=' . $id, 'fields' => 'group_name', )); if (!$this->_groupbuy_mod->edit($id, array('state' => GROUP_FINISHED, 'end_time' => gmtime()))) { $this->show_warning($this->_groupbuy_mod->get_error()); return; } $content = get_msg('tobuyer_groupbuy_finished_notify', array('group_name' => $group['group_name'], 'id' => $id)); $this->_groupbuy_mod->sys_notice( $id, array('buyer'), '', $content, array('msg') ); $this->show_message('finished_ok'); } _ican函数代码: function _ican($id, $act = '') { $state_permission = array( GROUP_PENDING => array('start', 'edit', 'drop'), GROUP_ON => array('cancel', 'desc', 'log', 'finished', 'export_ubbcode'), GROUP_END => array('cancel', 'desc', 'finished', 'log'), GROUP_FINISHED => array('drop', 'log', 'view_order'), GROUP_CANCELED => array('drop', 'log') ); $group = $this->_groupbuy_mod->get(array( 'join' => 'belong_goods', 'conditions' => 'gb.group_id=' . $id . ' AND g.store_id=' . $this->_store_id,// id参数未过滤直接带入查询 'fields' => 'gb.state', )); if (!$group) { return false; // 越权或没有该团购 } if (empty($act)) { return $state_permission[$group['state']]; // 返回该团购此状态时允许的操作 } return in_array($act, $state_permission[$group['state']]) ? true : false; // 该团购此状态是否允许执行此操作 }
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com