网站地图    收藏   

主页 > 入门引导 > 黑客攻防 >

FengCMS新版本重装 - 网站安全 - 自学php

来源:自学PHP网    时间:2015-04-15 15:00 作者: 阅读:

[导读] FengCms Beta 1 20管理这样判断冒是那里不对啊。详细说明:用switch做判断,真的搞不懂程序猿是怎么想的啊,这里的step变量可以控制,导致重装程序。switch($_GET[step]){ case 1: 安装许可协议...

FengCms Beta 1.20

管理这样判断冒是那里不对啊。

用switch做判断,真的搞不懂程序猿是怎么想的啊,这里的step变量可以控制,导致重装程序。



 

switch($_GET['step']){

    case '1': //安装许可协议

include ABS_PATH."/step/step1.php";

break;


    case '2': //检查安装环境是否满足要求

$PHP_GD  = '';
if(extension_loaded('gd')) {
if(function_exists('imagepng')) $PHP_GD .= 'png';
if(function_exists('imagejpeg')) $PHP_GD .= ' jpg';
if(function_exists('imagegif')) $PHP_GD .= ' gif';
}
$PHP_JSON = '0';
if(extension_loaded('json')) {
if(function_exists('json_decode') && function_exists('json_encode')) $PHP_JSON = '1';
}
//新加fsockopen 函数判断,此函数影响安装后会员注册及登录操作。
if(function_exists('fsockopen')) {
$PHP_FSOCKOPEN = '1';
}
$PHP_DNS = preg_match("/^[0-9.]{7,15}$/", @gethostbyname('www.baidu.cn')) ? 1 : 0;

//是否满足FengCms安装需求

$is_right = (phpversion() >= '5.2.0' && extension_loaded('mysql') && $PHP_JSON && $PHP_GD && $PHP_FSOCKOPEN) ? 1 : 0;

//配置文件是否存在和可写

$is_config = (is_readable($config_file) && is_writable($config_file)) ? 1 : 0;

//上传目录是否可写
$is_upload = (dir_writeable(ROOT_PATH."/upload")) ? 1 : 0;

//模块导出目录是否可写
$is_module = (dir_writeable(ROOT_PATH."/upload/module")) ? 1 : 0;

//前台缓存目录是否可写
$is_cache = (dir_writeable(ROOT_PATH."/app/cache")) ? 1 : 0;

include ABS_PATH."/step/step2.php";

break;

    case '3': //填写数据库信息

include ABS_PATH."/step/step3.php";

break;

    case '4': //正在安装

$conn=@mysql_connect($_GET['host'],$_GET['user'],$_GET['password']);

if(!$conn){

echo '<script type="text/javascript">alert("链接主机失败,请检查主机地址、用户名和密码是否正确!");history.go(-1);</script>';
exit();  
}elseif(intval(mysql_get_server_info($conn))<5){

echo '<script type="text/javascript">alert("您的MYSQL版本为'. mysql_get_server_info($conn).',版本太低,不能安装FengCms!");history.go(-1);</script>';
exit();  

}else{  

if(!mysql_select_db($_GET['dbname'],$conn)){   //如果数据库不存在,我们就进行创建。

if (!mysql_query("CREATE DATABASE ". $_GET['dbname'] ." default character set utf8;",$conn))

{

echo '<script type="text/javascript">alert("数据库不存在,创建不成功");history.go(-1);</script>';

}else{

if(!mysql_select_db($_GET['dbname'],$conn)){

echo '<script type="text/javascript">alert("链接数据库失败,请检查数据库是否正确!");history.go(-1);</script>';

}else{

include "data.php";

}

}

}else{

include "data.php";

   }
}
break;

    case '5': //安装完成

include ABS_PATH."/step/step5.php";

break;

    case '6': //删除安装目录

if(rmdirs(ROOT_PATH.'/install') or rmdir(ROOT_PATH.'/install')){

  echo '<script type="text/javascript">alert("删除成功!");close();</script>';
  exit();

}else{
  echo '<script type="text/javascript">alert("删除失败,请手工删除网站根目录下install目录!");close();</script>';
  exit();
}

break;
}

 

http://test.com/FengCms%20Beta%201.20/install/index.php?host=localhost&user=root&password=****&dbname=fengcms&prefix=f_&url_type=1&step=4


 

QQ图片20140705123849.jpg





前提用户在没有删除/install的情况下面导致程序无限制任意安全。

修复方案:

修改判断语句~提醒用户删除可以改成强制。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论