当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-066656

漏洞标题:maccms8 由于涉及缺陷可以再系统内部随意创建文件目录

相关厂商:maccms.com

漏洞作者: menmen519

提交时间:2014-07-02 15:13

修复时间:2014-09-30 15:14

公开时间:2014-09-30 15:14

漏洞类型:设计缺陷/逻辑错误

危害等级:中

自评Rank:5

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-07-02: 细节已通知厂商并且等待厂商处理中
2014-07-02: 厂商已经确认,细节仅向厂商公开
2014-07-05: 细节向第三方安全合作伙伴开放
2014-08-26: 细节向核心白帽子及相关领域专家公开
2014-09-05: 细节向普通白帽子公开
2014-09-15: 细节向实习白帽子公开
2014-09-30: 细节向公众公开

简要描述:

maccms8 由于涉及缺陷可以再系统内部随意创建文件目录(开启文件缓存!!!!!!)

详细说明:

今天在查看苹果cms的时候发现一个任意创建文件目录的代码,本想着可以任意创建文件,但是由于对于文件各方面的过滤,还有一些目录遍历方面的过滤,只能审计到此,啥也不说了,直接看代码
index.php(41-42):

$tpl->ifex();
setPageCache($tpl->P['cp'],$tpl->P['cn'],$tpl->H);
$tpl->run();
echo $tpl->H;


setPageCache这个函数功能就是把页面内容缓存起来,那么我们进入到缓存的函数里面查看

function setPageCache($cp,$cn,$cv)
{
if($GLOBALS['MAC']['app']['dynamiccache'] ==0){ return false; }
$cf = MAC_ROOT.'/cache/'.$cp.'/'.$cn.'.html';
$path = dirname($cf);
mkdirs($path);
@fwrite(fopen($cf,'wb'),$cv);
}


这时候我们看到了 这里有一个mkdirs($path),那我们可不可以在cache底下随意穿件我们认为的文件名,由于苹果cms的请求机制都是伪静态的,而且与$cp和$cn相关的地方都进行了初始化,或者说是进行了转移,那么我们是否可以找到一个部队$cp做任何处理的请求呢,经过一番苦苦寻觅,如下:
module/comment.php的save函数存在这样的可能

elseif($method=='save')
{
$c_vid = intval(be("all", "vid"));
$c_name = be("all", "c_name");
$c_type = intval(be("all", "aid"));
$c_content = be("all", "c_content");
$c_code = be("all","c_code");

if($c_type>=16 && $c_type<=18){
$c_type=16;
}

if (isN($c_name) || isN($c_content)){ echo '请输入昵称和内容'; exit; }
//if ($MAC['other']['commentverify']==1 && $_SESSION["code_comment"] != $c_code){ echo '验证码错误'; exit; }
if (getTimeSpan("last_commenttime") < $MAC['other']['commenttime']){ echo '请不要频繁操作';exit; }
$pattern = '/[^\x00-\x80]/';
if(!preg_match($pattern,$c_content)){
echo '内容必须包含中文,请重新输入!';exit;
}

$c_name = badFilter($c_name);
$c_content = badFilter($c_content);
$c_ip = ip2long(getIP());
$c_time = time();


发现没有进行任何处理,这里我们注释掉验证码检测部分(之后输入验证码,截获发出去就行)
url:
http://192.168.10.70/maccms8_mfb_/maccms8_mfb/index.php?m=comment-save-cp-testdir-cn-a%2500sdasda
post_data:
c_content=请输111&c_name=2222&c_code=xxxx
如图所示:

8.png


下来我们去cache文件夹底下查看:

9.png


看似危害不大,我们猜想一下,如果页面有一个反射型xss,那么该反射性就会被缓存到cache里面,转白成为了真真正正的存储型,而且 无限制的创建文件

漏洞证明:

修复方案:

对不适用到cp的地方做初始化

版权声明:转载请注明来源 menmen519@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2014-07-02 19:23

厂商回复:

此漏洞已经确认,感谢你的帮助。

最新状态:

暂无