discuz部署https后台无法登录怎么回事?
因为默认DZ不支持HTTPS。
解决办法:
SSL证书配置完毕后,服务器不要设置设置强制HTTPS。在HTTP地址情况下进入后台,将所有参数改成https地址,其中包括UC或者DZ基础所有设置修改一下,可以理解为相当于https又是个新域名一样。SSL证书获取方法:可以在Gworg申请SSL证书。
呵呵,看样子你是个新手,5D6D免费论坛还是比较不错的,造成这样的原因是你用的是你自己管理的ID当然可以看到,你也可以自己在你的论坛里注册几个ID,比如会员,VIP版主之类的级别,先把自己设置的相关权限统统测试一下,我用5D6D的论坛快一年了,还是比较稳定的!我现在论坛里也有一些测试过的70代码可以来看看,相信对你有帮助!你可以直接打开FBA个人DJ舞曲网,
第一步:到Ucenter手工配置Discuz的应用。
第二步:添加成功后会有一个配置,将配置信息复制下来。
第三步:在discuz的配置信息加到discuz根目录的congfigincphp中。(可能默认有,覆盖掉那一部分)
这里要注意的就是:
1你的discuz的URL是不是正确
2根目录下的API是否有ucphp这个文件
3UC_KEY UC_APPID都必须一致。
总之就是,配置信息要一致。
使用discuz官方提供的tools工具修复下就可以了
如图重置管理员帐号就可以了
重置之后再用管理员帐号登录UC后台进行操作
另外建议你在做后台操作之前先做备份,万一出问题用备份还原最方便了
这个不是手动的漏洞,貌似是DZ设计的问题,根据IP来的,你的时间没有被刷说明你不在漏洞IP段,SO。。。还是不要幻想了。。。望给分,另外,这个漏洞管理员是可以通过数据库修复的,你还是想想如何修复这个漏洞,然后告诉管理员要奖励吧。。。
在构建我的vita系统的过程中,发现管理员管理的便捷与系统安全隐患之间的矛盾
全站采用cookie验证,比如wordpress的验证就是基于cookie的,由于cookie的明文传输
在局域网内极易被截获,或者这个vita在我不发骚的情况下存在了XSS漏洞的话,cookie被人截获,
在这种情况下,等于站点被人xxx了
另一种情况就是利用session来进行管理员身份的认证,但是由于php天生对于session的处理机制的问题,不能长时间保存,利用数据库构建的session系统开销太大,在这种情况下,我就只好先研究先下大家是怎么做的
于是分析了Discuz!的登陆验证机制
每个Discuz!论坛都有一个特定的authkey也就是Discuz!程序中的$_DCACHE['settings']['authkey']并且与用户的浏览器特征值HTTP_USER_AGENT一起组成了discuz_auth_key这个变量如下代码:
commoneincphp文件大概130行左右
$discuz_auth_key = md5($_DCACHE['settings']['authkey']$_SERVER['HTTP_USER_AGENT']);
在Discuz!论坛用户登陆以后会有一个cookie,名称为cdb_auth(cdb_是你站点的名称,可以设置不能在configincphp 文件中设置),Discuz!论坛就靠这个来判断一个用户是否是登陆状态,在分析这个值的内容之前,我们看下他是如何生成的
list($discuz_pw, $discuz_secques, $discuz_uid) = empty($_DCOOKIE['auth']) array('', '', 0) : daddslashes(explode("\t", authcode($_DCOOKIE['auth'], 'DECODE')), 1);
解释一下,获得的客户端的cookie经过Discuz!的函数authcode解密以后会得到用户输入的用户名,密码,在authcode函数中 会用到刚刚提到的$discuz_auth_key这个值,在不知道$discuz_auth_key的情况下,基本上靠cookie里的值反解出用户名 密码的几率为0,同样的,在生成cdb_auth就是相逆的一个流程,先获得用户输入的用户名,密码,在验证正确之后,用authcode加密,写入 cookie,很简单吧
以上就是Discuz!普通用户的登陆验证过程,写的不是很详细,大概能看明白就行
install/include/installfunctionphp 598行
php版本高于420就不播种随机数种子,由php自动生成
install/indexphp 345行
$authkey由6位md5值加上random(10),6位十六进制字符其实就16^6种组合,还是可以爆破的。
$authkey用的地方超级多,主要还是authcode函数的key和部分验证字段的md5 salt
由于authcode函数比较慢,所以找了一处md5的地方
source/class/helper/helper_seccheckphp 36行
$_G['authkey']来自 source/class/discuz/discuz_applicationphp 271行
$this->var['cookie']['saltkey'] 在cookie中 $ssid在cookie名字中,$_G['uid']未登录状态下是0 所以未知的变量就只有'authkey'了,可以爆破。
打开注册页面 记录几个cookie值
有这些就足够了 先用脚本生成php_mt_seed的参数
然后用脚本爆破authkey
php跑这个略慢 不过反正是MD5 大不了GPU跑起 经过一段时间等待之后 结果出来了
拿到这个authkey能干嘛还没仔细翻,反正authcode加解密函数相关的都能搞,这里有个简单的修改任意用户邮箱做演示
source/include/misc/misc_emailcheckphp
uid email 都来自hash 这里并没有验证用户的身份就直接uc_user_edit修改了用户的email
poc:
访问
http://192168199191/discuz/homephpmod=misc&ac=emailcheck&hash=2008TBCoIA%2F7hC4FhiKAjh%2B1TFLsn6T49XzAbvNhoxp48YW3VEJ9zSQ02cB8la4PAiuq4PDodBS%2BJrMm
0条评论