来源:自学PHP网 时间:2015-04-17 14:11 作者: 阅读:次
[导读] 74cms_v3.1.20120214中任意web目录打包下载。。。很有意思的漏洞74cms后台有一个备份模板的功能,程序会自动备份选中的模板并压缩下载,但是没有对用户提交的$tpl变量进行检查就带入函数...
74cms_v3.1.20120214中任意web目录打包下载。。。很有意思的漏洞
74cms后台有一个备份模板的功能,程序会自动备份选中的模板并压缩下载,但是没有对用户提交的$tpl变量进行检查就带入函数,导致构造变量即可打包任意目录并下载。。 看代码。。 在admin/admin_template.php 第47行 elseif ($act == 'backup') { check_token(); check_permissions($_SESSION['admin_purview'],"tpl_backup"); require_once(ADMIN_ROOT_PATH.'include/admin_phpzip.php'); $tpl = trim($_REQUEST['tpl_name']); //$filename受$tpl影响 $filename = '../temp/backup_templates/' . $tpl . '_' . date('Ymd') . '.zip'; $zip = new PHPZip; // www.2cto.com 没有检查tpl_name的有效性就直接调用zip进行压缩 //由于$filename也受$tpl控制,导致如果遍历层数大于三层web程序会把压缩文件 //放入web目录外。。 $done = $zip->zip('../templates/' . $tpl . '/', $filename); if ($done) { header("Location:".$filename.""); } else { adminmsg("操作失败!",0); } } 更改tpl_name,我们下载data文件夹 修复方案: 过滤吧亲 作者 猪头子 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com