Modoer 点评系统注射 几个版本通杀

  • A+
所属分类:lcx

不给力的注射, 搞某站挖的, 查了下没什么大站用这个 影响不大 发出来大家交流学习, 废话不多说, 看我们的猪肉点~~~~~

首先coremodulesitemajax.php开始调用~

$do = trim($_GET['do']);
$op = trim($_GET['op']);
// 允许的操作行为
$allowacs = array( 'respond', 'review', 'subject', 'picture', 'guestbook'); 
// By.Rices -> Forum: T00ls.Net -> Blog: Rices.so
// 需要登录的操作
$loginacs = array( 'post_respond', 'delete_respond', 'add_flower', 'post_membereffect', 'add_favorite', 'post_guestbook' );
// 可返回地址
$_G['forward'] = $_G['web']['referer'] ? $_G['web']['referer'] : $_G['cfg']['siteurl'];

$act = empty($do) || !in_array($do, $allowacs) ? '' : $do;

if(!$do) redirect('global_op_unkown');
include MOD_ROOT . 'ajax' . DS . $do . '.php';  //op=get_membereffect&do=subject 开始调用subject.php

coremodulesitemajaxsubject.php 148行

case 'get_membereffect':

    if(!$sid = _post('sid', 0, 'intval')) redirect(lang('global_sql_keyid_invalid', 'sid'));
    if(!isset($_POST['effect'])) redirect(lang('member_effect_unkown_effect'));
    $S =& $_G['loader']->model('item:subject');
    if(!$subject = $S->read($sid,'pid,name,subname,pid,status',false)) redirect(lang('item_empty'));
    if(!$model = $S->get_model($subject['pid'], TRUE)) redirect('item_model_empty');
    // By.Rices -> Forum: T00ls.Net -> Blog: Rices.so
    $idtype = $model['tablename'];
    $effect = $_POST['effect']; //没过滤

    $M =& $_G['loader']->model('member:membereffect');
    $M->add_idtype($idtype, 'subject', 'sid');

    if($_POST['member'] && $_POST['member'] != '0') {
        if($list = $M->get_member($sid, $idtype, $effect)) { //注射开始 get_member函数在coremodulesmembermodelmembereffect_class.php文件中
            while($val = $list->fetch_array()) {
                echo '
  • ';
    }
    } else {
    redirect('global_empty_info');
    }
    } else {
    $totals = $M->total($sid, $idtype);
    if($totals) {
    foreach($totals as $key => $val) {
    if(substr($key, 0, 6) == 'effect') {
    echo $split . $val;
    $split = '|';
    }
    }
    } else {
    echo '0|0';
    }
    }
    output();
    break;

    coremodulesmembermodelmembereffect_class.php 86行

    function get_member($id, $idtype, $effect) {
        $this->db->from($this->table);
        $this->db->where('id', $id); //where函数会使用addslashes处理第二个参数 
        $this->db->where('idtype', $idtype);
        $this->db->where($effect, 1); //第一个参数只有简单的验证 且无双引号包围 直接带入where函数 继续注射....
        return $this->db->get(); //经过where处理后就进入get执行了~
    }

    corelibdatabase.php 155行

    // 设置查询字段
    function where($key, $value='', $split='AND') {
            
        if(is_array($key)) {
            foreach ($key as $k => $v) {
                if(is_array($v) && count($v)==2 && is_array($v[1])) {
                        echo ''.$k.$v.'';
                    $fun = $v[0];
                    $args = array_merge(array($k), $v[1]);
                    call_user_func_array(array(&$this, $fun), $args);
                } else {
                    $this->where($k, $v, $split);
                }
            }
    // By.Rices -> Forum: T00ls.Net -> Blog: Rices.so
        } elseif($key=='{sql}') {
            $this->_exp_where('sql', $value, $split);
        } elseif(is_array($value)) {
            $this->where_in($key, $value, $split);
        } else {
    //关键是这里的第一个参数是没过滤的  如果可控值在value就没办法了
            $where = $this->_ck_field($key) . " = " . $this->_escape($value); 
    //_escape 会使用addslashes 处理值 
    //而_ck_field 只会使用 preg_match("/['"]+/", $field)来处理 只要 $key的值没单引号即可绕过
            $this->where .= ($this->where ? " $split " : '') . $where;
                    //echo $where;
        }
    }

    Modoer 点评系统注射 几个版本通杀

    这点还是有点意思的  过滤了value却没过滤key  so..有兴趣的朋友可以去挖挖看  只要where函数第一个值可控就可以轻松搞定~

    exp不发了  改版权的去死吧  土司万岁

    转自:https://t00ls.net/viewthread.php?tid=20817&extra=page%3D1%26amp%3Borderby%3Ddateline%26amp%3Bfilter%3D2592000

    文章来源于lcx.cc:Modoer 点评系统注射 几个版本通杀

    相关推荐: QuarksPwDum导出2003 AD域控所有用户hash的方法

    1:在2003命令行里输入c:>ntbackup 使用备份向导(高级) 选择只保存系统状态然后选择输出文件名 等待几分钟即可完成第一步 2:使用还原向导(高级) 选择你的刚才备份的文件,请单击“下一步” 选择恢复在另一个位置文件(C: test为例) 然…

    发表评论

    :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: