漏洞概要 关注数(6) 关注此漏洞
缺陷编号: WooYun-2014-67396
漏洞标题: cmseasy的最新版SQL注入一枚
相关厂商: cmseasy
漏洞作者: phith0n
提交时间: 2014-07-04 17:43
公开时间: 2014-10-02 17:44
漏洞类型: SQL注射漏洞
危害等级: 高
自评Rank: 20
漏洞状态: 厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org
Tags标签: php源码审核 白盒测试
漏洞详情
披露状态:
2014-07-04: 细节已通知厂商并且等待厂商处理中
2014-07-07: 厂商已经确认,细节仅向厂商公开
2014-07-10: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2014-08-31: 细节向核心白帽子及相关领域专家公开
2014-09-10: 细节向普通白帽子公开
2014-09-20: 细节向实习白帽子公开
2014-10-02: 细节向公众公开
简要描述:
。。
详细说明:
cmseasy后台可以未授权访问,在/lib/admin/admin.php中:
这个抽象类是所有后台类继承得到的,当用户IP(可以通过x-forwarded-for伪造)和服务器IP相同且ishtml=1的话,就能不执行check_admin,造成未授权访问。
可以通过一些插件修改:
如上图,修改IP以后在后台url后加上ishtml=1,即可访问后台页面。可看到cookie安全码:
拿到了这个安全码,就能干一些坏事。
比如注入。看到/lib/admin/admin_act.php,58行:
远程登录的函数,先获得$args,并base64解码,解码以后再xxtea解密(密钥就是刚才得到的字符串),解密以后再反序列化得到一个对象,直接放进数据库中查询。
也就是说,我有了密钥,就能构造一个注入语句进行注入,而且因为最后的数据是base64编码过的,所以根本不怕任何waf,比如360webscan。
详见证明。
漏洞证明:
修复方案:
加密过的内容也不能随便相信,如果key泄露了呢?
版权声明:转载请注明来源 phith0n@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2014-07-07 09:50
厂商回复:
感谢,理解修正
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值