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

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

首先\core\modules\item\ajax.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\core\modules\item\ajax\subject.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函数在\core\modules\member\model\membereffect_class.php文件中
while($val = $list->fetch_array()) {
echo '<li><div><a title="'.$val['username'].'" href="'.url("space/index/uid/$val[uid]").'" target="_blank"><img src="'.get_face($val['uid']).'" />'.$val['username'].'</a></div></li>';
}
} 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;\core\modules\member\model\membereffect_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执行了~
}\core\lib\database.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函数第一个值可控就可以轻松搞定~

分类:默认分类 时间:2012-01-05 人气:1
本文关键词:
分享到:

相关文章

  • modo 3D 游戏开发软件产品说明 2012-02-16

    modo是一款高级多边形细分曲面,建模、雕刻、3D绘画、动画与渲染的综合性3D软件。MODO是设计开发、游戏内容创建、动画角色和制作高质量广告画面的完整解决方案。MODO内在创建的工作流充满艺术性,它让数字内容创建和设计再次充满乐趣。艺术家和设计师可以尽情开发和专注于创造性的开发,在最短的时间有最高质量的产出。 modo的建模原理是nurbs原理,有点像犀牛,但是比犀牛强大。 modo的工作流程迥异于绝大多数三维软件,他的基本设计原则是简明、灵活、清晰、直观。不同于Maya或是3ds Max那种

  • Modoer点评系统存储型XSS 2012-09-17

    Modoer点评系统某处存储型XSS,可直接跨进后台 在礼品兑换处: 联系地址和备注处没有过滤,可以跨进后台: 可以收到管理的cookie: 这里管理员登陆的cookie只有Z9S61_adminid和Z9S61_adminhash两个参数就ok了,所以这个xss劫持的cookie是可以直接登陆后台的。 修复方案: 过滤

  • 专业3D绘图软件MODO横空出世 2014-04-10

      MODO是设计开发、游戏内容创建、动画角色和制作高质量广告画面的完整解决方案。MODO内在创建的工作流充满艺术性,它让数字内容创建和设计再次充满乐趣。艺术家和设计师可以尽情开发和专注于创造性的开发,在最短的时间有最高质量的产出。   功能:   动画   建立在应用创新方式的传统动画技术之上,MODO的动画结构高度自定义化,满足最苛求的制作挑战。   预先设置   通过MODO强大的预设系统,保存和分享一个过程或者是内容的一部分,允许快速访问核准内容,极大的提高了团队的效率。   渲染   

  • CentOS常用命令小结 2012-04-19

    下面,就来介绍这些CentOS常用命令。 一:使用CentOS常用命令查看cpu 复制代码 代码如下: more /proc/cpuinfo | grep "model name" grep "model name" /proc/cpuinfo [[email protected] /]# grep "CPU" /proc/cpuinfo model name : Intel(R) Pentium(R) Dual CPU E2180 @ 2.00GHz model name : Intel(R) Pe

  • CentOS常用命令大全 2012-07-17

      初学Linux系统,看的是鸟哥的Linux私房菜 基础学习篇(第三版),还在看书阶段中,感觉就是命令和参数难道记呢,还有各种权限设置,先整理了这些常用的命令,以便使用中查阅。   一:使用CentOS常用命令查看cpu   more /proc/cpuinfo | grep "model name"   grep "model name" /proc/cpuinfo   [[email protected] /]# grep "CPU" /proc/cpuinfo   model name : I

  • 新站seo布局完美方案 2012-08-04

      盖房子之前要进行规划,画好规划图,这样才能建一个漂亮的房子。所以要新建一个网站,如何进行seo优化,也要进行布局。下面我就谈一下我对新站seo布局的理解。   一、域名的选择。   域名是站长最重要的无形资产之一。所有网站内容、流量都与特定域名相联系。一个好的域名对seo及网站运营都有一定的影响。   1、域名后缀:   后缀名尽量选择用户熟悉习惯的域名,如.com等,如果不提是哪种域名,用户都认为是.com域名,这个符合用户体验。   2、域名续费时间:   Google在2003年12月

  • 设计师必须知道的最具影响力的设计网站 2013-12-31

      你单独找一两个顶尖博客挺容易的,但是要把他们分门别类的找一些包含这些子类的博客就难了。我尤其对网页设计、Wordpress、UI设计、用户体验、HTML5、CSS3、jQuery、响应式网页和移动设计感兴趣。这就是我为什么下这么个大目标——寻找我们这个行业最具影响力的网页设计博客。我把这些博客分门别类以及解释为什么这个博客应该包含进来。   我列出了他们的一些排名情况,包括Google PR值,Alexa评分,Twitter粉丝,Facebook粉丝(但是我没有包括RSS,它似乎以及过时了,

Copyright (C) quwantang.com, All Rights Reserved.

趣玩堂 版权所有 京ICP备15002868号

processed in 0.040 (s). 10 q(s)