漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-082600
漏洞标题:BiWEB最新商城版任意文件删除漏洞致重装
相关厂商:BiWEB
漏洞作者: 路人甲
提交时间:2014-11-11 15:15
修复时间:2015-02-09 15:16
公开时间:2015-02-09 15:16
漏洞类型:设计缺陷/逻辑错误
危害等级:中
自评Rank:10
漏洞状态:未联系到厂商或者厂商积极忽略
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-11-11: 积极联系厂商并且等待厂商认领中,细节不对外公开
2015-02-09: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
BiWEB最新商城版任意文件删除漏洞致重装
详细说明:
在wooyun上看到了有人提了BiWEB的一个XSS漏洞: WooYun: BIWEB商城版XSS盲打cookie ,也有人提了SQL注入,我来找找其他的漏洞吧。去官网下BiWEB商城版最新的5.8.4来看看。
在修改用户资料处,上传执照图片时,使用unlink()删除原来的文件,而删除的文件是用户可控的,而且没有过滤../等符号,也没有限制访问的目录,造成任意文件删除。
该CMS中有多处这种漏洞,如:
这里就选上传执照图片(/user/adminu/licence.php)作简要分析。
下面是分析过程及删除证明。
BiWEB首先对GET和POST进行了过滤,/config/filtrate.inc.php
这里就先不说这种过滤的脑残之处了。
继续往下看,上传执照图片/user/adminu/licence.php(测试时记得要先注册一个用户并登录)。
看到了unlink($strOldFile);而$strOldFile = $arrGPic['FileSavePath'].'b/'.$_POST['savefilename'];,$_POST['savefilename']又是用户可控的,问题就来了,这里没有对$_POST进行过滤,也没有限制访问的目录,所以,漏洞就出现了。
$arrGPic['FileSavePath'] = __WEB_ROOT."/uploadfile/".$arrGWeb['module_id']."/";,而此处的module_id为user,所以,这里的路径为/uploadfile/user/b/savefilename。如果这样构造filename:../../../data/install.lock,那install.lock就被删除了,也就可以重装了。
登录,访问http://XXXX/user/adminu/licence.php,上传文件,抓包,把文件名改为../../../data/install.lock如下:
删除install.lock前,是不能重装的
执行成功以后,我们再访问http://XXXX/install,可以重装了
漏洞证明:
见 详细说明
修复方案:
过滤 限制目录访问
版权声明:转载请注明来源 路人甲@乌云
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝