漏洞概要 关注数(22) 关注此漏洞
缺陷编号: WooYun-2014-68941
漏洞标题: 74cms (20140709) 任意文件读取 & 注入漏洞
相关厂商: 74cms.com
漏洞作者: ′雨。
提交时间: 2014-07-18 13:35
公开时间: 2014-10-16 13:36
漏洞类型: SQL注射漏洞
危害等级: 高
自评Rank: 20
漏洞状态: 厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org
Tags标签: 无
漏洞详情
披露状态:
2014-07-18: 细节已通知厂商并且等待厂商处理中
2014-07-23: 厂商已经确认,细节仅向厂商公开
2014-07-26: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2014-09-16: 细节向核心白帽子及相关领域专家公开
2014-09-26: 细节向普通白帽子公开
2014-10-06: 细节向实习白帽子公开
2014-10-16: 细节向公众公开
简要描述:
20140709.
详细说明:
20140709的74cms
在plus/weixin.php中 因为默认的这个文件都会checkSignature 来检测token
但是来看看74cms的 根本就不需要token。
来看看valid
check了。
可是在这里 如果设置了这个 就直接进入了。所以 完全没验证token。。。
0x01 任意文件读取 (这个无视接口是否开启)
因为在解析xml的时候是在判断接口是否开启之前 所以就算没开启也能读取。
在这里解析了传递过来的xml
解析过后 这里exit($text); 退出的时候会把内容输出过来。 所以。
构造一个xml 就能读取任意文件了。
_______________________________________________________________________________
上面那个任意文件读取不需要开启接口, 下面这个注入就需要开启接口了。
0x02 注入
($_CFG['sina_apiopen']=='0' 在这里由于判断了接口是否开启 关闭了则退出
所以注入的话得开启才行,
在这里 $wheresql.=" where likekey LIKE '%{$keyword}%' ";
来看看$keyword哪里来的。
可以看到是解析后来的
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
$GLOBALS["HTTP_RAW_POST_DATA"]这个是不会被74cms的addslashes转义的
所以造成了注入。、
漏洞证明:
修复方案:
首先 你这个检测函数根本都没用到。 所以造成了这些问题。
用一下检测函数, 然后 随机生成一下token 或者 判断一下是否初始化了token
如果未初始化就exit
版权声明:转载请注明来源 ′雨。@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2014-07-23 11:22
厂商回复:
感谢反馈
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值