喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

上一主题 下一主题
 54  3/6  <  1  2  3  4  5  6  > 
     
标题: [原创] 惊人发现:PHP所有版本 SESSION 漏洞  
  本主题由 unspace 于 2007-9-4 10:30 PM 加入精华 
 
sadly (sadly)
管理员
Rank: 9Rank: 9Rank: 9
管理员


UID 1
精华 4
积分 2008
帖子 2012
金钱 1534 喜悦币
威望 40
人脉 434
阅读权限 200
注册 1970-1-1
来自 北京 三元桥
状态 离线
看   php源码的 ext/session/session.c

php_add_session_var  函数




以PHP在中国的繁荣发展为己任
QQ:824008 MSN:sadly@phpx.com
2007-6-14 10:15 PM#21
查看资料  访问主页  Blog  发短消息  QQ  ICQ 状态  顶部
 
angeljyt
中级会员
Rank: 3Rank: 3



UID 72645
精华 0
积分 428
帖子 394
金钱 428 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-5-1
状态 离线
[推荐阅读] 为什么连10K都不到,就敢称“高薪招聘”
看这个标题.惊动得村长大驾光临啦.
2007-6-14 10:20 PM#22
查看资料  Blog  发短消息  顶部
 
熟人
中级会员
Rank: 3Rank: 3



UID 92185
精华 0
积分 332
帖子 476
金钱 332 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2007-4-29
状态 离线
[推荐阅读] soho招php程序员一名(苏州)
正在研究session.c
感觉楼主最后一帖应该还牵扯到php_set_session_var这个函数




性格:馋 懒 奸 猾 坏
兴趣:吃 喝 嫖 赌 抽
职业:坑 蒙 拐 骗 偷
2007-6-15 09:07 AM#23
查看资料  发短消息  顶部
 
游戏人间
版主
Rank: 7Rank: 7Rank: 7
风云山庄大少爷


UID 62639
精华 2
积分 14351
帖子 7228
金钱 14211 喜悦币
威望 20
人脉 120
阅读权限 100
注册 2004-12-21
来自 广西人在北京
状态 离线
[推荐阅读] phplib使用问题。
村长大驾光临,偶昨天竟然在睡觉。。。



 
群号:6025396/6025252/19520091(广西PHP交流/PHP高级编程/算法交流)、饿踢Blog

寧可在嘗試中失敗,也不在保守中成功!

不為失敗找理由,只為成功找方法!
 
2007-6-15 09:10 AM#24
查看资料  访问主页  Blog  发短消息  顶部
 
xiajialin
新手上路
Rank: 1



UID 84798
精华 0
积分 36
帖子 27
金钱 36 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-12-14
状态 离线
[推荐阅读] 居然有人这样!
高手评论下,我新手,不完全理解.
2007-6-15 09:24 AM#25
查看资料  Blog  发短消息  顶部
 
115300111
新手上路
Rank: 1
一般会员



UID 67296
精华 1
积分 20
帖子 201
金钱 0 喜悦币
威望 20
人脉 0
阅读权限 10
注册 2005-12-19
状态 离线
[推荐阅读] 求一个SQL语句


QUOTE:
原帖由 sadly 于 2007-6-14 10:15 PM 发表
看   php源码的 ext/session/session.c
php_add_session_var  函数


<?php
PHPAPI void php_add_session_var
(char *namesize_t namelen TSRMLS_DC)
{
    
zval **sym_track NULL;

    
IF_SESSION_VARS() {
        
zend_hash_find(Z_ARRVAL_P(PS(http_session_vars)), namenamelen 1
                (
void *) &sym_track);
    } else {
        return;
    }

    
/*
     * Set up a proper reference between $_SESSION["x"] and $x.
     */

    
if (PG(register_globals)) {
        
zval **sym_global NULL;
        
        if (
zend_hash_find(&EG(symbol_table), namenamelen 1, (void *) &sym_global) == SUCCESS) {                
            if ((
Z_TYPE_PP(sym_global) == IS_ARRAY && Z_ARRVAL_PP(sym_global) == &EG(symbol_table)) || *sym_global == PS(http_session_vars)) {
                return;
            }
        }

        if (
sym_global == NULL && sym_track == NULL) {
            
zval *empty_var;

            
ALLOC_INIT_ZVAL(empty_var); /* this sets refcount to 1 */
            
empty_var->refcount 0/* our module does not maintain a ref */
            /* The next call will increase refcount by NR_OF_SYM_TABLES==2 */
            
zend_set_hash_symbol(empty_varnamenamelen12Z_ARRVAL_P(PS(http_session_vars)), &EG(symbol_table));
        } else if (
sym_global == NULL) {
            
SEPARATE_ZVAL_IF_NOT_REF(sym_track);
            
zend_set_hash_symbol(*sym_tracknamenamelen11, &EG(symbol_table));
        } else if (
sym_track == NULL) {
            
SEPARATE_ZVAL_IF_NOT_REF(sym_global);
            
zend_set_hash_symbol(*sym_globalnamenamelen11Z_ARRVAL_P(PS(http_session_vars)));
        }
    } else {
        if (
sym_track == NULL) {
            
zval *empty_var;
    
            
ALLOC_INIT_ZVAL(empty_var);
            
ZEND_SET_SYMBOL_WITH_LENGTH(Z_ARRVAL_P(PS(http_session_vars)), namenamelen+1empty_var10);
        }
    }
}
?>




http://www.mayday.net.cn/
http://www.thisky.com/
2007-6-15 10:16 AM#26
查看资料  访问主页  发短消息  顶部
 
115300111
新手上路
Rank: 1
一般会员



UID 67296
精华 1
积分 20
帖子 201
金钱 0 喜悦币
威望 20
人脉 0
阅读权限 10
注册 2005-12-19
状态 离线
[推荐阅读] java能把一套PHP系统做成安装文件么?
村长果然非一般的牛……

我去看了,看不懂

就告诉我,这到底是不是漏洞呢?

如果不是,那为什么不是?




http://www.mayday.net.cn/
http://www.thisky.com/
2007-6-15 10:20 AM#27
查看资料  访问主页  发短消息  顶部
 
细雨清风 (广告位20元/月)
金牌会员
Rank: 6Rank: 6
管理员


UID 71720
精华 0
积分 2993
帖子 361
金钱 7 喜悦币
威望 0
人脉 2986
阅读权限 70
注册 2006-4-15
状态 离线
[推荐阅读] 来帮小弟看看这段类结构函数哪错了


QUOTE:
原帖由 115300111 于 2007-6-15 10:20 AM 发表
村长果然非一般的牛……

我去看了,看不懂

就告诉我,这到底是不是漏洞呢?

如果不是,那为什么不是?
是你的用法有问题有这样的感觉




广告位10元/月 本船以为,性感就是让男人有"想看看这件衣服里面有什么"的欲望的样子.
2007-6-15 10:25 AM#28
查看资料  发短消息  顶部
 
meteor_shower
高级会员
Rank: 4
揮刀戲江湖譜寫情緣傳奇


UID 66798
精华 2
积分 957
帖子 897
金钱 927 喜悦币
威望 30
人脉 0
阅读权限 50
注册 2005-9-21
来自 深圳
状态 离线
[推荐阅读] 问个editplus的问题
你所說的漏洞其實是不存在只是你沒有完全理解
register_globals = on 和 register_globals = off 時的區別
2007-6-15 11:09 AM#29
查看资料  发短消息  QQ  顶部
 
sadly (sadly)
管理员
Rank: 9Rank: 9Rank: 9
管理员


UID 1
精华 4
积分 2008
帖子 2012
金钱 1534 喜悦币
威望 40
人脉 434
阅读权限 200
注册 1970-1-1
来自 北京 三元桥
状态 离线
[推荐阅读] XAJAX无刷新回复问题(已解决)
楼主这个问题提的很好, 说明你注意到了细节, 但是这不应该说是漏洞.

讲源码的话, 大概有人头晕. 看以下两段代码,

程序A

<?php
session_start
();
$_SESSION['isadmin']='yes';
$isadmin='no';
echo 
$_SESSION['isadmin'];
?>
程序B

<?php
session_start
();
session_register("isadmin");
$_SESSION['isadmin']='yes';
$isadmin='no';
echo 
$_SESSION['isadmin'];
?>
仔细看结果是有差据的.


应该想一想程序A里   register_globals = On  了, 但为什么它不象想象的那样呢?
(这个涉及到session比较底层的东西)




以PHP在中国的繁荣发展为己任
QQ:824008 MSN:sadly@phpx.com
2007-6-15 11:11 AM#30
查看资料  访问主页  Blog  发短消息  QQ  ICQ 状态  顶部
 54  3/6  <  1  2  3  4  5  6  > 
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 


Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.035763 second(s), 7 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP