刀豆文库小编猜你可能喜欢“社会安全论坛”。
漂亮但不安全的CTB论坛CTB论坛再探(共2篇)由网友“锋平浪静”投稿提供,下面是小编为大家整理后的漂亮但不安全的CTB论坛CTB论坛再探,供大家参考借鉴,希望可以帮助您。
篇1:漂亮但不安全的CTB论坛CTB论坛再探
注:本文已在《 X档案》发表, 此信息,
============================================
记得很久前PSKEY写过一篇CTB论坛存在的一个可以直接添加管理员的漏洞,的确CTB论坛的代码可读性非常好,是一个非常的美观的文本论坛。前几天找了套最新的1.63版的论坛代码来看了看,发现了一些不足之处可以让攻击者获得论坛管理权限。
在CTB论坛中对前台和后台登陆的情况都设置了一个日志记录供管理员查看,可以让管理员尽快发现论坛是否被人入侵。但是对于用户递交的数据没有进行任何处理就记录到了日志当中,我们可以通过递交特殊的语句来进行跨站攻击,从而直接得到密码。
我们看看admin目录下的login.php文件的日志处理部分的代码:
代码:
--------------------------------------------------------------------------------
//后台管理员登陆日志
functionadminLoginLog($check=“ok”)
{
if($this->set[logRecord]==“N”){
returnfalse;
}
$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和密码等信息,
我们打开后台登陆页面,在用户名那里输入:
代码:
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
因为无论登陆成功否,程序都会进行记录,所以密码我们可以随便填。其中192.168.1.1为我们放置cookie.php的网址,cookie.php为一个可以获得cookie信息的PHP文件。现在我们要做的就是等了,只要管理员一查看后台登陆日志,我们的PHP程序就会把他的COOKIE截取下来。
让我们看看截取到的文件内容:
引用:
--------------------------------------------------------------------------------
ctb_user_login=ctb;ctb_user_pass=ce445102682e75bf533d44e1afc38a90;ctb_login_mode=1;eremite=0;SKINs=2;fylinklinkfylogin=cpb;userpass=2BA2A8AC968A7A2B0A7BAA7F2FEF18D2;username=sniper;Dwebdv=userid=1
篇2:漂亮但不安全的CTB
漂亮但不安全的CTB
PsKeyanalysist.tocare.netC4ST
>>>DedicatedThisScrapToCaoJing开发和维护的源代码开放的PHP论坛,由于其后台管理文件验证存在缺陷,可能导致非法用户直接添加论坛超级管理员,进而威胁论坛或服务器安全。
具体:
^^^^^^
CTB书写非常规范,代码井然有序,赏心悦目,的确是优美的程序;特别是其功能模块,着实让小弟学习了一把。但安全方面却令人堪忧:
试看如下代码:
/admin/main.pp
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//获取get变量
if(is_array($_GET)){
foreach($_GETas$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=newModule;
$ctb->set=$set;
$ctb->tplPath=“./templates”;
$ctb->input=$return;
$ctb->sess=isset($_COOKIE[“sess_adminname”])?$_COOKIE:$_SESSION;
$ctb->execute();
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这里没有任何验证,我们看看添加管理员的文件:
/admin/systemuser.pp
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
classModuleextendsCommonClass
//系统管理模块子类
{
functionexecute(){
switch($this->input['action']){
...
case'addSystemUser':
$this->addSystemUser();
break;
...
}
}
functionaddSystemUser()
{
//输入数据简单格式化
$this->inputCheck(\"main.php?mod=systemuser