| 首页 | 技术文章 | 软件下载 | 博客 | 论坛 | 精品教程 | 黑客动画 | 视频资源 | 在线服务 | 黑客游戏 | 

您现在的位置: 中国X黑客小组 >> 技术文章 >> 安全防御 >> 漏洞分析 >> 文章正文 用户登录 新用户注册
  MolyX Board原代码泄露漏洞         ★★★ 【字体:
MolyX Board原代码泄露漏洞
作者:angel    文章来源:4ngel.net    点击数:    更新时间:2005-1-29    

前言
MolyX Board(以下简称MXB)是 MolyX Studios 小组(好象就是CNVBB小组)开发的PHP论坛程序,MXB 融合了众多论坛程序的优点,博采众长,功能强大。多年的论坛程序汉化和改进经验也使 MXB 更适合国人的使用习惯。不过漏洞是难免的。

受影响系统
MolyX Board 2.0
MolyX Board 2.1

详细
attachment.php缺乏对attach变量进行检查,导致远程攻击者可以构造这个变量访问该服务器上允许访问的存在的文件。

文件其中一段代码:

function showattachment()
{
  global $DB, $forums, $_INPUT, $bbuserinfo, $bboptions;
  $forums->noheader = 1;
  if (!$_INPUT['u'] OR !$_INPUT['attach']) {
    $forums->func->standard_error("cannotviewattach");
  }
  if (!$bbuserinfo['candownload']) {
    $forums->func->standard_error("cannotdownload");
  }
  $path = $bboptions['uploadfolder'] . '/' . implode('/', preg_split('//', intval($_INPUT['u']), -1, PREG_SPLIT_NO_EMPTY));
  $file = $path."/".$_INPUT['attach'];
  if ( file_exists( $file ) AND ( $forums->cache['attachmenttype'][ $_INPUT['extension'] ]['mimetype'] != "" ) ) {
    $DB->shutdown_query("UPDATE ".TABLE_PREFIX."attachment SET counter=counter+1 WHERE attachmentid=".intval($_INPUT['id'])."");
    @header('Cache-control: max-age=31536000');
    @header('Expires: ' . gmdate("D, d M Y H:i:s", TIMENOW + 31536000) . ' GMT');
    @header( 'Content-Type: '.$forums->cache['attachmenttype'][ $_INPUT['extension'] ]['mimetype'].'' );
    @header( 'Content-Disposition: inline; filename='.$_INPUT['filename'].'' );
    @header( 'Content-Disposition: inline; filename='.$_INPUT['filename'].'' );
    @header( 'Content-Length: '.(string)(filesize( $file ) ).'' );
    $fh = fopen( $file, 'rb' );
    fpassthru( $fh );
    @fclose( $fh );
    exit();
  } else {
    $forums->func->standard_error("cannotviewattach");
  }
}



如果我们访问一个附件:

/UpLoadFiles/NewsPhoto/lename=1.gif


这个attachment.php就会老老实实服务器上的1105910809.gif文件的内容返回到浏览器上。后面的filename只是上传时的文件名字。这个变量不用管,如果我们发送一个请求。构造attach变量为“./../../../../../../includes/config.php”:

/UpLoadFiles/NewsPhoto/lename=1.gif


attachment.php文件也会按照正常流程把config.php的内容输出到浏览器。这样MYSQL的连接信息什么都出来了。“../”的个数视目录结构而定。如果“/etc/pass”可读的话,也可以读出该文件的内容。剩下的该怎么做就怎么做了。我制造一把刀不是为了让你去杀人。

解决办法
attachment.php这个文件中,showattachment(),showthumb()函数都是这样的,所以我们都给它过滤一下,搜索两处:

$file = $path."/".$_INPUT['attach'];


然后改为:

$_INPUT['attach'] = str_replace("/", "", substr($_INPUT['attach'], strrpos($_INPUT['attach'], '/')));
$file = $path."/".$_INPUT['attach'];


本来想检查扩展如果不是attach就停止的。可是后来了解到这个论坛如果是图片就不改扩展。不是图片就改成.attach的扩展。所以还是用上面的比较高效一点。呵呵……

后记
第一次见MolyX Board,不得不惊叹该小组的体贴用户的程度。很多功能的确如介绍所说:博采众长,功能强大。速度是慢了一点。特别是后台。不过我觉得一个好的论坛。不能从多出那零点几秒的运行时间而否定它的。

文章录入:IceRiver    责任编辑:IceRiver 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    McAfee发布Windows Mobile风
    Motorola Timbuktu Pro处理文
    Sun Solaris ATA 磁盘驱动IO
    Mozilla:火狐3.0将增加两项
    Mozilla撤回十天内修复高危漏
    irefox/Thunderbird/SeaMonk
    Mozilla发布官方黑客工具
    Mozilla Firefox 2.0.0.4浏览
    _mwoltb - _mwoltb.dll - DL
    winspool.exe - winspool - 
      网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    Powered by ICE RIVER - STUDIO
    » CnXHacker.CoM   © CopyRight 2002-2006, CnXHacker.CoM™, Inc. All Rights Reserved.