| 关键词: key php job 变量 顺序 ereg 注册 GET inc 友善 |
发布时间:2009-06-22 影响版本: v6版 漏洞描述: 在do/job.php文件: ... }elseif(ereg("^([-_0-9a-zA-Z]+)$",$_GET[job])||ereg("^([-_0-9a-zA-Z]+)$",$_POST[job])){ require(dirname(__FILE__)."/"."global.php"); if(is_file(PHP168_PATH."inc/job/$job.php")){ include(PHP168_PATH."inc/job/$job.php"); } } 嗯,如果开了全局的话,就可以用gpc的变量注册顺序来pass那个正则判断,不过php168很友善的搞了个模拟register_globals=on的功能,在inc/common.inc.php文件: ... if(!ini_get('register_globals')){ @extract($_COOKIE,EXTR_SKIP); @extract($_FILES,EXTR_SKIP); } foreach($_POST as $_key=>$_value){ !ereg("^\_[A-Z]+",$_key) && $$_key=$_POST[$_key]; } foreach($_GET as $_key=>$_value){ !ereg("^\_[A-Z]+",$_key) && $$_key=$_GET[$_key]; } ... 嗯,可以很容易的pass上面的判断了,不过这里的变量注册顺序和gpc默认的变量注册顺序是有些不同的:)<*参考 http://hi.baidu.com/80vul_b/blog/item/220bdad6af998ed4a144df9c.html *> SEBUG安全建议: 暂无 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|