Bo-Blog BloggerBo-blog 博客程序鸡肋注入漏洞

    by:xhm1n9 2011.2.21

inc/mod_main.php //漏洞文件:

 case 'category':
   if (!$job) $job='default';
 else $job=basename($job);
 $ifannouncement="none";

 acceptrequest('mode');
 if ($mode==1 || $mode==2) {
      //..........................
 } elseif (!empty($mode) && (!is_numeric($mode) || $mode>2)) {
     getHttp404($lnc[313]);
 }
   //......................
if (is_numeric($itemid)) $itemid=floor($itemid); //注意1
        elseif (isset($categorynames[$itemid])) $itemid=floor($categorynames[$itemid]);//注意2
        else {
            getHttp404($lnc[186]); //注意3
        }
        if (is_array($categories[$itemid]['subcates'])) {
            $categories[$itemid]['subcates'][]=$itemid;
            $all_needed_cates=@implode(',', $categories[$itemid]['subcates']);
        } else {
            $all_needed_cates=$itemid;//
        }
        $counter_now=$blog->countbyquery("SELECT COUNT(blogid) FROM `{$db_prefix}blogs` {$limitation2}`category` in ({$all_needed_cates})");
        //...........................

index.php //调用文件:

 acceptrequest('act,go,page,part');
if (!$page) $page=1;
elseif (!is_numeric($page) || $page<=0) {
    getHttp404($lnc[313]);
 }
  //.................................
  if ($go) @list($job, $itemid)=@explode('_', basename($go));
 if (!$act) $act='main';
 else $act=basename($act);
   $itemid=safe_convert($itemid); //有过滤
   //..................................
 if (file_exists("inc/mod_{$act}.php")) include ("inc/mod_{$act}.php");
   //...............................
  
  $itemid来自/index.php 注意1中存在逻辑错误,注意2条件不足可以绕过,我们关键看注意3中的函数。
 
  function getHttp404($errormsg) {
    global $config;
    @header ("HTTP/1.1 404 Not Found");
    if ($config['customized404']) {
        @header ("Location: {$config['customized404']}");//注意4 没用die()
    }
    else {
        catcherror($errormsg);//这里最终会用到 exit;代码终止执行
     }
  }

    可以看到只要“data/config.php”配置文件中设置了“$config['customized404']”值,就能绕过过滤走到sql语句中去形成注入。(如有分析错误请指出:))

    Exp:http://127.1/bo-blog/index.php?act=main&mode=1&go=category_0