phpAdsNew/Postgres本地文件包含漏洞

来源:岁月联盟 编辑:zhuzhu 时间:2005-08-20
phpAdsNew/Postgres本地文件包含漏洞 发布日期:2005-08-19
更新日期:2005-08-19

受影响系统:
phpAdsNew phpAdsNew 2.0.5
phpPgAds phpPgAds 2.0.5
不受影响系统:
phpAdsNew phpAdsNew 2.0.6
phpPgAds phpPgAds 2.0.6
描述:
--------------------------------------------------------------------------------
BUGTRAQ  ID: 14591

phpAdsNew是一款开发源码的广告服务程序,用于管理横幅广告。phpPgAds是用Postgres实现的phpAdsNew。

phpAdsNew和phpPgAds中存在本地文件包含漏洞。第一个漏洞存在于adlayer.php。

代码:

- -151-153---
phpAds_registerGlobal (’what’, ’clientid’, ’clientID’, ’context’,
’target’, ’source’, ’withtext’, ’withText’,
’layerstyle’);
- -151-153---



- -178-182---
if (!isset($layerstyle) || empty($layerstyle)) $layerstyle = ’geocities’;


// Include layerstyle
require(phpAds_path.’/libraries/layerstyles/’.$layerstyle.’/layerstyle.inc.php’);
- -178-182---

没有正确的过滤$layerstyle变量,因此可以包含本地文件。

另一个漏洞存在于./admin/js-form.php。

代码:

- -26-28---
@include (phpAds_path.’/language/english/default.lang.php’);
if ($HTTP_GET_VARS[’language’] != ’english’ && /
file_exists(phpAds_path.’/language/’.$HTTP_GET_VARS[’language’].’/default.lang.php’)) /
                @include /
                (phpAds_path.’/language/’.$HTTP_GET_VARS[’language’].’/default.lang.ph /
                p’);
- -26-28---

如果magic_quotes_gpc = Off的话,就可以执行安全。

成功利用这些漏洞的安全者可以远程执行任意代码。

<*来源:Maksymilian Arciemowicz (max@jestsuper.pl)
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=112431194004798&w=2
*>

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

警 告

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

http://[HOST]/[DIR]/adlayer.php?layerstyle=../../../../../../../etc/passwd%00
http://[HOST]/[DIR]/admin/js-form.php?language=../../../../../../../../../../etc/passwd%00

建议:
--------------------------------------------------------------------------------
厂商补丁:

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

http://phpadsnew.com/two/index.html

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

http://www.phppgads.com/one/