解密discuz 登陆产生的_auth信息cookie
发布:smiling 来源: PHP粉丝网 添加日期:2015-09-30 10:58:36 浏览: 评论:0
等我们登陆discuz的时候,势必会产生cookie信息,下面我们去解开discuz登陆的_auth信息.
1、在我们自己的主网站上面先打印出来所有的cookie
2、我们发现会有好几个信息,然后我们找到*****_auth 以及******_saltkey 类似于这种的,因为前缀是根据不同的网站生成出来的.
3、然后我们去解密:
首先包含ucenter文件:
Yii::import('application.vendor.*');
include_once 'ucenter.php';
如果你不知道这个包含是啥意思,或者不知道这里的文件哪里来的,可以看看我的博客中的其他博文,从头看即可明白,这里就不多说了.
$authkey = "*********";这个是秘钥。在config/config_global.php文件中的$_config['security']['authkey'] = '*******';就是这个,你看看你自己的是什么就是什么.
$salt = $_COOKIE['H0NF_2132_saltkey'];//这个是discuz产生的随机数
$key = md5($authkey.$salt);//解密key
$info = uc_authcode($_COOKIE['H0NF_2132_auth'], 'DECODE',$key);
然后打印出来$info得到的结果类似于这种:
bf6b7e1ddd3da431342f550eb8ce19e5 1
我们发现后面有个1或者其他数字,这个数字表示你的用户id,这样我们就获得的用户信息,然后根据这个id获取ucenter的用户信息即可.
至于我是怎么知道这里的key就是salt 和authkey的md5数据.
我们看他是如何加密的:
登陆时走了authcode这个方法(在source/function/function_core.php).
我们看到这段代码:$key = md5($key != '' ? $key : getglobal('authkey'));
发现他走了getglobal方法体
然后发现里面有个这个东西:global $_G; 说明这里声明了全局变量$_G。
呢么$_G是在哪里定义的呢。
我们找到source/class/discuz/discuz_application.php,然后就可以看到他定义的$_G这个全局变量数组了,我们发现里面就有这个authkey这个东西。
然后我们找到:$this->var['authkey'] = md5($this->var['config']['security']['authkey'].$this->var['cookie']['saltkey']);大约来270左右,因为我的文件被改动过来,都乱七八糟的.//phpfensi.com
我们看到他就是authkey和saltkey组合而成的authkey.
Tags: discuz _auth信息 cookie
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)