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

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

缺陷编号:wooyun-2015-094013

漏洞标题:oecms 存储型 xss

相关厂商:phpcoo.com

漏洞作者: izy

提交时间:2015-03-02 10:01

修复时间:2015-05-31 10:46

公开时间:2015-05-31 10:46

漏洞类型:xss跨站脚本攻击

危害等级:低

自评Rank:5

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

没有对文件的访问做验证,并且其中有一个参数在最后转义了,看了一下用oecms的网站挺多的;此xss用起来也比较方便,直接post数据,前台直接触发,后端也没做csrf处理,这也增大了xss的威力。

详细说明:

造成xss的的两个原因:
(1)对admincp下的文件访问验证有问题
(2)有一个参数开始过滤了,最后又用stripslashes还原了
问题出现在admincp/frendlink.php文件的action_saveadd()函数
args从_validAdd()函数传入

public function action_saveadd() {
$args = $this->_validAdd();

$model = parent::model('friendlink', 'am');
$result = $model->doAdd($args);
unset($model);
if (true === $result) {
$this->log('friendlink_add', '', 1);
XHandle::halt("添加成功", $this->cpfile.'?c=friendlink', 0);
}
else {
$this->log('friendlink_add', '', 0);
XHandle::halt('添加失败', '', 1);
}
}


跟踪_validAdd()函数,传入的参数 'name', 'orders', 'flag', ‘remark’,’catid’在getGpc函数都做了过滤,而url传入了getArgs()函数
getArgs如果isfliter是false的话就会执行XFilter::stripArray(),此函数把转义的都还原了 ,造成了xss漏洞

public static function getArgs($value, $default=NULL, $isfliter = true) {
if (!empty($value)) {
if (isset($_GET[$value])) $temp = trim($_GET[$value]);
if (isset($_POST[$value])) $temp = trim($_POST[$value]);
if ($isfliter == true) {
$temp = XFilter::filterStr($temp);
}
else {
$temp = XFilter::stripArray($temp);
}
if (empty($temp) && !empty($default)) {
$temp = $default;
}
return trim($temp);
}
else {
return '';
}
}


public static function stripArray(&$_data){
if (is_array($_data)){
foreach ($_data as $_key => $_value){
$_data[$_key] = trim(self::stripArray($_value));
}
return $_data;
}else{
return stripslashes(trim($_data));
}
}


漏洞证明:

直接向此文件post数据添加frendlink,前台存储xss。

屏幕快照 2015-01-26 下午2.03.42.png

修复方案:

后端文件都做好访问限制, 对url参数过滤,在函数之前加入$this->checkAuth(') 函数

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2015-03-02 10:45

厂商回复:

感谢您的对OECMS的关注。此漏洞,我们相关负责同事在跟进处理中。

最新状态:

暂无