Ucenter登录验证机制
时间:2009-02-06
来源:互联网
用户登录成功后 会得到一个用“用户名”加密后的密文 并将密文赋值给cookie['sid'] 保存在cookie中
登录验证的大体流程是这样的:
1:如果cookie['sid']存在 则 $sid=cookie['sid'] 否则 $sid=$_GET['sid']
<也就是说$sid的值 要么从cookie中 获取 要么从URL传递的参数中获取>
2:反解$sid中的密文 得到“用户名”
3:查询数据库中是否存在该用户,存在则设置 cookie['sid']=sid_encode($username)
<也就是将 用户名 加密后的密文存于 COOKIE中>
这样似乎就万无一失了呢? 肯定不是!
这种验证机制存在如下漏洞,
A: 由于Ucenter是开源软件 用户通过在本地测试可以得到某个用户名加密后的密文,然后通过URL传递给被 攻击的服务器上的Ucenter,那么反解后照样能得到 该用户名,于是 顺利绕过 (蜗牛我就通过这种方法在本地计算机上 在不知道密码的情况下,顺利通过别的用户名登录到后台)
B: 原理同上,只不过是伪造COOKIE
………………………………………………………………………
很多朋友肯定会想了,人家DZ的人都是吃屎的啊? 怎么可能这么弱智的问题都没想到
呵呵! 我当然是乱说的,其实 在这个 用户名 加密 解密上人家DZ的人做了手脚,让我们没有那么容易破解的。
下面我说说加解密用户名:
其实 用户名加解密 要用到三个数据 ip,agent,UC_KEY 分别是用户的IP,用户的浏览器信息,以及每个UC程序所特有的值UC_KEY, 在不知道UC_KEY的情况下 是没办法模拟别人的UC程序 将用户名加密后的数据的。
在这里蜗牛我也几个问题想问各位大虾们
首先如果我知道别人的UC_KEY了 是否就能 绕过别人的登录验证
其次 我自己做了个实验,我用某个用户名登录后,然后记录下该用户名加密后的SID,然后退出清空COOKIE然后第二天,我不输入用户名密码 ,而直接传递这个SID给UC 竟然登录到后台了。 这样的机制是否安全?
作者: E蜗牛 发布时间: 2009-02-06
”这么一说,按楼主的理论确定可以通过
作者: action2001 发布时间: 2009-02-06
作者: E蜗牛 发布时间: 2009-02-06
至于你做的实验,那个没什么好说明的,只要有这个cookie[sid]的备份,一年后你用这个cookie也能登陆,前提是在同一台计算机上。
作者: carche 发布时间: 2009-02-07
作者: kakashilw 发布时间: 2009-03-18
作者: xinxing520 发布时间: 2009-03-18
你就能找到sid,然后用他的账号登录。
问题是,别人为什么要用你的机器呢?
所以说网吧里千万不要使用需要登录才能用的任何工具。
作者: faallan 发布时间: 2009-03-20



不错
作者: imhehe 发布时间: 2009-03-22
以前研究过discuz的,和你说的一个原理,即使知道网站的UC_KEY,也很难伪造登陆的,因为还有ip信息难以伪造,浏览器信息伪造也有一定难度。
至于你做的实验,那个没什么好说明的,只要有这个cookie[sid]的备份,一年 ...
作者: happyyin 发布时间: 2009-03-22
作者: xinxing520 发布时间: 2009-03-22
作者: T.T.R 发布时间: 2009-03-23
加密 解密 的确有密钥传递
作者: E蜗牛 发布时间: 2009-03-23
”这么一说,按楼主的理论确定可以通过
作者: kwlong2008 发布时间: 2009-03-24
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28