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

- AV AC AU C I A
发布: 2025-04-13
修订: 2025-04-13

### 简要描述: 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) ||...

0%
暂无可用Exp或PoC
当前有0条受影响产品信息