受影响系统:
SugarCRM Inc. Sugar CRM 5.2.0e
描述:
BUGTRAQ ID: 35361
SugarCRM是开源的客户关系管理系统。
SugarCRM的Compose Email部分允许发送带有附件的邮件。在指定文件名时,会调用一个验证例程:
function safeAttachmentName($filename) {
global $sugar_config;
$badExtension = false;
//get position of last "." in file name
$file_ext_beg = strrpos($filename, ".");
$file_ext = "";
//get file extension
if($file_ext_beg > 0) {
$file_ext = substr($filename, $file_ext_beg + 1);
}
//check to see if this is a file with extension located in "badext"
foreach($sugar_config[‘upload_badext’] as $badExt) {
if(strtolower($file_ext) == strtolower($badExt)) {
//if found, then append with .txt and break out of lookup
$filename = $filename . ".txt";
$badExtension = true;
break; // no need to look for more
} // if
} // foreach
return $badExtension;
}
这个例程检查文件扩展名是否在黑名单中,如果是则向文件名添加.txt扩展名,但这里存在一个编码错误:函数假设文件名(不包括扩展名)至少为一个字符长。这个假设源自以下语句:
if($file_ext_beg > 0)
如果将文件名设置为.php,就可以绕过检查,扩展名被认定为为空。由于空的扩展名不在黑名单中,因此不会对文件名附加任何扩展名。在这个检查后会在文件系统上创建<id><filename>形式的文件,其中id是字母组成的字符串。
<*来源:Francesco Ongaro (ascii@ush.it)
链接:http://secunia.com/advisories/35445/
http://marc.info/?l=bugtraq&m=124508501909361&w=2
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
建议:
厂商补丁:
SugarCRM Inc.
————-
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
0 条评论。