漏洞概要
关注数(24)
关注此漏洞
漏洞标题:Tipask 2.0 加密函数破解导致任意用户密码修改
提交时间:2013-06-24 16:29
修复时间:2013-09-22 16:30
公开时间:2013-09-22 16:30
漏洞类型:设计缺陷/逻辑错误
危害等级:高
自评Rank:20
漏洞状态:未联系到厂商或者厂商积极忽略
Tags标签:
无
漏洞详情
披露状态:
2013-06-24: 积极联系厂商并且等待厂商认领中,细节不对外公开
2013-09-22: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
Tipask问答系统是一款开放源码的PHP仿百度知道程序。以国人的使用习惯为设计理念,采用MVC构架,系统具有速度快,SEO友好,界面操作简洁明快等特点。
但是Tipask中使用的加密算法存在被破解的可能性,因此将导致包括任意用户密码修改等漏洞的发生。
详细说明:
在核心加密算法strcode函数中:
可以看到加密的算法是异或,所以可以用密文和明文异或的方法反过来求出密钥key,如下:
key长度为18,因此我们要找一个明文长度超过18而被加密的字串,经过检查,发现cookie中的auth值长度超过了18,因此将针对cookie中的auth进行key猜解。
漏洞证明:
在Tipask的密码重置中,生成密码重置链接的关键字串是由strcode产生,因此可以利用破解后的key来达到任意密码修改功能。
首先申请重置目标用户的密码
利用自己的注册用户的cookie解密key:
当前登录用户cookie中的auth为VjEFWAFbAwtXBlUDV1ZVCAEAUFkDBQFcVFcCUggCAlNVWg%3D%3D
然后进行解密:
获得key为d82ab802de152bf9bb
然后输入想要重置的用户:
获得了重置密码的链接。
修复方案:
版权声明:转载请注明来源 猪头子@乌云
漏洞回应