Tikiwiki CMS tiki-listmovies.php遍历漏洞

时间:2008-01-03 04:51:00   来源:绿盟科技  作者:kill  编辑:chinaitzhe
发布日期:2007-12-24

更新日期:2007-12-25

受影响系统:

TikiWiki Project TikiWiki < 1.9.9

不受影响系统:

TikiWiki Project TikiWiki 1.9.9

描述:

BUGTRAQ ID: 27008

TikiWiki是一款网站内容治理系统,基于PHP ADOdb Smarty等技术构建。

TikiWiki的实现上存在输入验证漏洞,远程攻击者可能利用此漏洞非授权访问到服务器上任意文件的部分内容。

TikiWiki的tiki-listmovies.php脚本答应用户获得任意文件的前1000个字节。该脚本将movie参数值设置为$movie,删除最后4字节并添加.xml扩展名,然后调用fopen($confFile,'r')打开文件并读取文件的前1000个字节,接着传送这1000字节用作MovieWidth和MovieHeight HTML标签的值,最后将web服务器所生成的HTML文件返回给用户。

有漏洞的代码段如下:

if(isset($_GET["movie"])) {

$movie = $_GET["movie"];

...

if ($movie) {

// Initialize movie size

$confFile = 'tikimovies/'.substr($movie,0,-4).".xml";

//trc('confFile', $confFile);

$fh = @fopen($confFile,'r');

$config = @fread($fh, 1000);

@fclose($fh);

if (isset($config) && $config <>'') {

$width =

preg_replace("/^.*?(.*?)<\/MovieWidth>.*$/ms", "$1", $config);

$height =

preg_replace("/^.*?(.*?)<\/MovieHeight>.*$/ms", "$1",

$config);

$smarty->assign('movieWidth',$width);

$smarty->assign('movieHeight',$height);

}

}

首先,将tikimovies附加到了文件名上,因此可以引用类似于../../../../../../file_name的相对文件系统对象。这还答应攻击者在配置文件获得数据库口令,或web目录外的其他文件,如/etc/passwd。

其次,从$movie变量删除了结尾的4字节,因此向字符串添加4个无效的结尾字节就可以绕过这个控制。

最后,可以通过添加空字节()来防范向变量末尾添加.xml扩展名。

用于访问文件的恶意字符串类似于:

../../../../../../etc/passwd1234

TikiWiki Project:现在厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:http://downloads.sourceforge.net/tikiwiki/tikiwiki-1.9.9.tar.gz?modtime=1198314005&big_mirror=1

关键字:Tikiwiki,CMS,tiki,listmovies,php,遍历,

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面