当前位置:首页 > CMS教程 > Discuz > 列表

解密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

分享到: