苹果小圆点怎么设置CMS后台基本设置出错!

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 '验证码错误'; }&&&&&&if (getTimeSpan("last_commenttime") & $MAC['other']['commenttime']){ echo '请不要频繁操作'; }&&&&&&$pattern = '/[^/x00-/x80]/';&& if(!preg_match($pattern,$c_content)){&&echo '内容必须包含中文,请重新输入!';&&}&&&&&&&&&&&&$c_name = badFilter($c_name);&&&&&&$c_content = badFilter($c_content);&&&&&&$c_ip = ip2long(getIP());&&&&&&$c_time = time();
发现没有进行任何处理,这里我们注释掉验证码检测部分(之后输入验证码,截获发出去就行)
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
如图所示:
下来我们去cache文件夹底下查看:
看似危害不大,我们猜想一下,如果页面有一个反射型xss,那么该反射性就会被缓存到cache里面,转白成为了真真正正的存储型,而且 无限制的创建文件
修复方案:
对不适用到cp的地方做初始化
最后编辑于:作者:BugSec
关注WEB互联网资讯,小菜B 一枚!出处:网钛科技
转载时请注明出处和网址
目前网钛科技有限公司的产品如下:
2、网钛互联:
企业客服QQ:
标签:&&&&&&&&
&-&&-&&-&&-&

我要回帖

更多关于 苹果小圆点怎么设置 的文章

 

随机推荐