WooYun-2014-53187:qibocms B2b 注入一枚

漏洞作者: ′雨。认证白帽子

来源:http://www.wooyun.org/bugs/wooyun-2014-053187

简要描述

在wooyun上看了看qibo。 忽略了全部xss. 那我就不提xss了。

来几枚注入, 求不忽略可好?

详细说明

B2B系统。

在news/js.php中

f($type=='hot'||$type=='com'||$type=='new'||$type=='lastview'||$type=='like')

{

    if($f_id)

    {

        if(is_numeric($f_id)){

            $SQL=" fid=$f_id ";

        }else{

            $detail=explode(",",$f_id);

            $SQL=" fid IN ( ".implode(",",$detail)." ) ";

        }

    }

    else

    {

        $SQL=" 1 ";

    }

    if($type=='com')

    {

        $SQL.=" AND levels=1 ";

        $ORDER=' list ';

        $_INDEX=" USE INDEX ( list ) ";

    }

    elseif($type=='hot')

    {

        $ORDER=' hits ';

        $_INDEX=" USE INDEX ( hits ) ";

    }

    elseif($type=='new')

    {

        $ORDER=' list ';

        $_INDEX=" USE INDEX ( list ) ";

    }

    elseif($type=='lastview')

    {

        $ORDER=' lastview ';

        $_INDEX=" USE INDEX ( lastview ) ";

    }

    elseif($type=='like')

    {

        $SQL.=" AND id!='$id' ";

        if(!$keyword)

        {

            extract($db->get_one("SELECT keywords AS keyword FROM {$_pre}content WHERE id='$id'"));

        }

        if($keyword){

            $SQL.=" AND ( ";

            $keyword=urldecode($keyword);

            $detail=explode(" ",$keyword);

            unset($detail2);

            foreach( $detail AS $key=>$value){

                $detail2[]=" BINARY title LIKE '%$value%' ";

            }

            $str=implode(" OR ",$detail2);

            $SQL.=" $str ) ";

        }else{

            $SQL.=" AND 0 ";

看到keyword 解码了。 所以无视了全局的转义了。

然后用空格来切割。

就不能用空格了。

官网测试成功。

漏洞证明

修复方案

求过滤

求保养

求20.