邪恶八进制信息安全团队技术讨论组's Archiver

睡猫 2006-8-3 00:34

[转载]PlanetGallery gallery_admin.php任意文件上传漏洞

信息来源:绿盟科技

发布日期:2006-07-20
更新日期:2006-07-21

受影响系统:
PlaNet Concept planetGallery <= 22.05.2006
不受影响系统:
PlaNet Concept planetGallery 14.07.2006
描述:
--------------------------------------------------------------------------------
BUGTRAQ  ID: 19091
CVE(CAN) ID: CVE-2006-3676

PlanetGallery是一个商业PHP脚本,用于发布图库、显示图片描述等。

PlanetGallery在匹配上传文件的名字时存在漏洞,远程攻击者可能利用此漏洞上传可执行的脚本文件从而在服务器上执行任意命令。

PlanetGallery的admin/gallery_admin.php文件中存在错误的正则表达式:

193  $allow_file_types = &#39;gif|jpg|jpeg|png|bmp&#39;;
[...]
197  if (preg_match(&#39;#\.&#39;.$allow_file_types.&#39;?#i&#39;,
       $_FILES[&#39;grafik&#39;][&#39;name&#39;][$i])) {
[...]

每个$_FILES[&#39;grafik&#39;][&#39;name&#39;][$i]变量都包含有上传文件的文件名。仅带有$allow_file_types中所提供的文件名扩展的图形是允许的,但正则表达式还匹配了类似于example.png.php的文件,Webserver将这类文件解释为PHP脚本。这就允许攻击者上传并执行任意PHP脚本。

<*来源:RedTeam ([url]http://www.redteam-pentesting.de/[/url])
  
  链接:[url]http://marc.theaimsgroup.com/?l=bugtraq&m=115341161106490&w=2[/url]
*>

测试方法:
--------------------------------------------------------------------------------

警 告

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

[url]http://example.com/planetGalleryPath/images/1/evil.png.php[/url]

建议:
--------------------------------------------------------------------------------
临时解决方法:

将admin/admin_gallery.php的193行改为:

  $allow_file_types = &#39;(gif|jpg|jpeg|png|bmp)&#39;;

并将197行改为:

  if (preg_match(&#39;#\.&#39;.$allow_file_types.&#39;$#i&#39;,
       $_FILES[&#39;grafik&#39;][&#39;name&#39;][$i])) {

厂商补丁:

PlaNet Concept
--------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

[url]http://www.planetc.de/download/planetgallery/planetgallery.html[/url]

页: [1]
© 1999-2008 EvilOctal Security Team