漏洞概要 关注数(13) 关注此漏洞
缺陷编号: WooYun-2014-49284
漏洞标题: WanCMS 可修改任意用户密码(源码详析+实例演示)
相关厂商: wancms.com
漏洞作者: lxj616
提交时间: 2014-01-19 16:27
公开时间: 2014-04-19 16:27
漏洞类型: 设计缺陷/逻辑错误
危害等级: 高
自评Rank: 20
漏洞状态: 厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org
Tags标签: 设计缺陷/边界绕过 逻辑错误
漏洞详情
披露状态:
2014-01-19: 细节已通知厂商并且等待厂商处理中
2014-01-20: 厂商已经确认,细节仅向厂商公开
2014-01-23: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2014-03-16: 细节向核心白帽子及相关领域专家公开
2014-03-26: 细节向普通白帽子公开
2014-04-05: 细节向实习白帽子公开
2014-04-19: 细节向公众公开
简要描述:
WanCMS 可修改任意用户密码(源码详析+实例演示)
在官方演示站demo.wancms.com做实例测试
(未测试旧版本,据原理分析可能是全版本通杀,本测试使用的版本是站长之家20130102的1.3免费版,官网不明版本演示测试成功)
详细说明:
/app/Lib/Action/AccountsAction.class.php line:580
所以,
1.点击找回密码
2.发送验证邮件
3.计算md5 ( md5 ( $username ) )
4.重置密码
poc:
注:验证时别忘了先点击“发送验证邮件”
可以计算一下poc生成 c1bfd25357a080c23ac5297c8ce6e7d6
漏洞成因总结为:身份令牌可预测
漏洞证明:
修复方案:
$reurl = $config ['DOMAIN'] . '/accounts/forget_password_t?vc=' . md5 ( md5 ( $username ) );
改为:
$reurl = $config ['DOMAIN'] . '/accounts/forget_password_t?vc=' . md5 ( md5 ( $username.$password ) );
前后文按照此方法修改即可,由于攻击者无法预先获知password和random,因此无法再伪造找回密码链接
版权声明:转载请注明来源 lxj616@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:10
确认时间:2014-01-20 14:16
厂商回复:
已修复
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值
0%
0%
0%
0%