PHP168 v2008网站内容管理系统权限提升漏洞
添加时间:
2009-02-01
系统编号:
WAVDB-01317
影响版本:
php168 v2008
程序介绍:
//这个地方使用preg_replace存在着安全隐患,之前就暴过漏洞,官方修补的方法是用filtrate函数处理了下$onlineip看一下filtrate函数是怎么处理的。
在function.inc.php页面代码当中
过滤了'"<等,但是没有处理\。
common.inc.php
//因为这个地方是拼接字符串的形式,所以可以使用\来转义',然后利用$usr_oltime来注射:)
解决方案:
厂商补丁:
PHP168
----------
目前厂商并没有发布任何升级补丁以修复这个安全问题
http://www.php168.com
信息来源:
<*来源 Ryat http://bbs.wolvez.org/topic/43/ *>
2009-02-01
系统编号:
WAVDB-01317
影响版本:
php168 v2008
程序介绍:
PHP168整站是PHP领域当前功能最强大的建站系统,代码全部开源,可极其方便的进行二次开发,所有功能模块可以自由安装与删除,个人用户完全免费使用。
漏洞分析:
在common.inc.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 = preg_replace("/^([\d\.]+).*/", "\\1", filtrate($onlineip));
在function.inc.php页面代码当中
- function filtrate($msg){
- $msg = str_replace('&','&',$msg);
- $msg = str_replace(' ',' ',$msg);
- $msg = str_replace('"','"',$msg);
- $msg = str_replace("'",''',$msg);
- $msg = str_replace("<","<",$msg);
- $msg = str_replace(">",">",$msg);
- $msg = str_replace("\t"," ",$msg);
- $msg = str_replace("\r","",$msg);
- $msg = str_replace(" "," ",$msg);
- return $msg;
- }
common.inc.php
- if($usr_oltime>30||!$usr_oltime){
- $usr_oltime>600 && $usr_oltime=600;
- include(PHP168_PATH."php168/level.php");
- if( isset($memberlevel[$lfjdb[groupid]]) ){
- $SQL=",groupid=8";
- $lfjdb[money]=get_money($lfjuid);
- foreach( $memberlevel AS $key=>$value){
- if($lfjdb[money]>=$value){
- $SQL=",groupid=$key";
- }
- }
- }else{
- $SQL="";
- }
- $db->query("UPDATE {$pre}memberdata SET lastvist='$timestamp',lastip='$onlineip',oltime=oltime+'$usr_oltime'$SQL WHERE uid='$lfjuid'");
解决方案:
厂商补丁:
PHP168
----------
目前厂商并没有发布任何升级补丁以修复这个安全问题
http://www.php168.com
信息来源:
<*来源 Ryat http://bbs.wolvez.org/topic/43/ *>