解密 discuz 登陆产生的_auth信息cookie

等我们登陆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左右,因为我的文件被改动过来,都乱七八糟的。
我们看到他就是authkey和saltkey组合而成的authkey。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值