简要描述: 装了挖财,因为想同步数据,所以先测试了一番,却在cookie上发现了这个问题。
通过一定手段可以伪造其他人的cookie进行登录,可以访问财务信息,登录论坛等,如果伪造管理员的,搞掉服务器应该也不是很忙难事吧(只YY,不深入)。具体细节看下面详细内容吧 :) 详细说明:挖财的cookie的加密强度还不够,而且只认证了用户名,具体的加密算法想了半天没想出来(数学都忘差不多了 - -),不过能够感觉出并不复杂。cookie中的user字段应该保存的是用户注册邮箱。抓包搞到的cookie一看就是base64编码,解码之后是乱码,但用十六进制表示可以看到位数和注册邮箱位数是一致的。通过分析发现,虽然每个字符在不同位置上加密后的值是不一样的,但在同一位置却是保持不变的,所以就想到下面的方法来伪造一个合法的cookie。 漏洞证明:具体的测试过程:
自己先注册了一个帐号 [email protected] ,填了一些消费记录,作为攻击目标 ​ 因为我们已经知道在相同位置上的字符加密之后的值是一样的,所以,我们需要注册两个帐号来拼接一下这个目标用户。
两个用户之间需要有一个字符的差别,所以我注册以下两个帐号:
[email protected]
[email protected]
我们只需要将第二个用户cookie base64解码后的第一个字符替换第一个用户base64解码后的第一个字符,然后进行base64加密,就完成了伪造目标用户cookie的过程
记录第二个用户的cookie base64解密后的第一个字符 
可以看到是11然后对第一个用户的cookie进行修改
​
将1d修改为11然后再次进行base64加密,生成目标cookie
​
然后就可以利用cookie登录网站了 :D
修改cookie​ 
刷新就显示已经登录了​ 
财务状态一览无余
​当然也可以登录论坛
​修复方案:修改加密算法,要复杂一些经过和厂家技术人员沟通了解到,其实cookie里面是有密码因素在里面的,只不过我测试的时候三个帐号密码都一样,所以造成可以伪造,非常抱歉!
|