网站地图    收藏   

主页 > 入门引导 > 黑客攻防 >

Ecmall的几处SQL注射漏洞 - 网站安全 - 自学php

来源:自学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

添加评论