投递文章投递文章 投稿指南投稿指南 RSS订阅RSS订阅

Phpcms2007 远程文件包含漏洞

来源:iT堂整理 发布时间:2008-07-17 收藏 投稿 字体:【
从国内安全组织据悉,Phpcms 2007 远程文件包含漏洞,这里转一下是由于发现这个漏洞如果是白盒那要都仔细看代码才行

//从头开始看
$rootdir = str_replace("\\", '/', dirname(__FILE__));

require $rootdir.'/include/common.inc.php';//通过extract可以覆盖$rootdir为任意值

require PHPCMS_ROOT.'/languages/'.$CONFIG['adminlanguage'].'/yp_admin.lang.php';

if(!$_username) showmessage($LANG['please_login'],$PHPCMS['siteurl'].'member/login.php?forward='.$PHP_URL);
require $rootdir.'/web/admin/include/common.inc.php ';//触发远程文件包含

注意看里面的2个require,第一个那引进的extract的代码,第2个require才导致漏洞的函数。

伪代码:

<?php
$rootdir = str_replace("\\", '/', dirname(__FILE__));

//下面就是require $rootdir.'/include/common.inc.php';引入的代码
@extract($_POST, EXTR_OVERWRITE);
@extract($_GET, EXTR_OVERWRITE);
unset($_POST, $_GET);

require $rootdir.'/web/admin/include/common.inc.php
?>

如果这里用grep等软件去找静态的上跟踪这个的话障很再可能就会漏调着可能分析得到的结果是:

$rootdir = str_replace("\\", '/', dirname(__FILE__));
require $rootdir.'/include/common.inc.php'
require $rootdir.'/web/admin/include/common.inc.php

一看$rootdir被过滤了,就会认为这里安全了?

所以一味的grep等静态去找,是找不到这样的bug的上...

来个“马后炮”,对于这样的上用灰盒测试可能效果很好:就是先看代码看common.inc.php这个躯干里发现用变量覆盖,然后黑盒去找跑那些变量可以覆盖.....

目前,Phpcms官方尚未到此消息发表回应

最新5条评论 查看所有评论
评论内容:请自觉遵守互联网相关政策法规。
用户名: 密码: 匿名 注册
热门文章
随机推荐
About iTtang - 联系方法  - 专题列表 - 友情链接  -  高级搜索   -  帮助中心  -