zzzphp V1.6.0 按照功能分析漏洞
0 基础支撑功能
0.1 路由功能
0.2 模版解析
* zzzphp V1.6.0 的代码执行漏洞,模版解析功能的问题
程序解析模版时,将模版中的部分内容匹配出来直接传递给了eval,且没有经过过滤
public
function parserIfLabel($zcontent)
{
$pattern = '/\{if:([\s\S]+?)}([\s\S]*?){end\s+if}/';
if (preg_match_all($pattern, $zcontent, $matches)) {
$count = count($matches[0]);
for ($i = 0; $i < $count; $i++) {
$flag = '';
$out_html = '';
$ifstr = $matches[1][$i];
$ifstr = str_replace('<>', '!=', $ifstr);
$ifstr = str_replace('mod', '%', $ifstr);
$ifstr1 = cleft($ifstr, 0, 1);
switch ($ifstr1) {
case '=':
$ifstr = '0' . $ifstr;
break;
case '{':
case '[':
$ifstr = "'" . str_replace("=", "'=", $ifstr);
break;
}
$ifstr = str_replace('=', '==', $ifstr);
$ifstr = str_replace('===', '==', $ifstr);
@eval('if(' . $ifstr . '){$flag="if";}else{$flag="else";}');
if (preg_match('/([\s\S]*)?\{else\}([\s\S]*)?/', $matches[2][$i], $matches2)) { // 判断是否存在else
switch ($flag) {
case 'if': // 条件为真
if (isset($matches2[1])) {
$out_html .= $matches2[1];
}
break;
case 'else': // 条件为假
if (isset($matches2[2])) {
$out_html .= $matches2[2];
}
break;
}
} elseif ($flag == 'if') {
$out_html .= $matches[2][$i];
}
// 无限极嵌套解析
$pattern2 = '/\{if([0-9]):/';
if (preg_match($pattern2, $out_html, $matches3)) {
$out_html = str_replace('{if' . $matches3[1], '{if', $out_html);
$out_html = str_replace('{else' . $matches3[1] . '}', '{else}', $out_html);
$out_html = str_replace('{end if' . $matches3[1] . '}', '{end if}', $out_html);
$out_html = $this->parserIfLabel($out_html);
}
// 执行替换
$zcontent = str_replace($matches[0][$i], $out_html, $zcontent);
}
}
return $zcontent;
}
1 安装
2 关于我们
3 查看列表
4 查看内容
5 查看品牌列表
6 查看品牌内容
7 留言
8 搜索
9 前台验证机制
9.1 注册
9.2 登陆
9.3 找回密码
10 会员中心
11 后台登陆
12 后台首页
12.1 显示统计信息
12.2 显示系统状态和cms状态
12.3 安全提醒
12.4 显示天气
12.5 修改创始人资料
12.6 离开一会儿
12.7 安全退出
12.8 删除全部
12.9 标签管理
13 后台关于我们
14 后台新闻中心
15 后台产品中心
16 后台案例展示
17 后台品牌列表
18 后台联系我们
19 后台内容管理
20 后台栏目扩展
21 后台模版管理
22 后台静态缓存
23 后台文件管理
24 后台用户管理
25 后台插件管理
26 后台系统管理
zzzphp V1.6.0 按照功能分析漏洞的更多相关文章
- 读阿里巴巴Java开发手册v1.2.0之编程规约有感【架构篇】
不为过去蹉跎,改变当下. 为什么开篇就送这么一句话给大家,我相信很多处于1-3年码龄的哥们儿们,在平时的编码历程中编码的个性可能是多彩的,每个人都有每个人特定的风格,但是我们现在这么随意写,以后这么 ...
- FineUI(专业版)v1.2.0 和 FineUI(开源版)v4.1.1 同时发布!
FineUI(开源版)v4.1.1 (建议所有 v4.x 升级到此版本):http://fineui.com/demo/ +2014-08-15 v4.1.1 -修正Form中表单字段设 ...
- RapidJSON v1.1.0 发布简介
时隔 15.6 个月,终于发布了一个新版本 v1.1.0. 新版本除了包含了这些日子收集到的无数的小改进及 bug fixes,也有一些新功能.本文尝试从使用者的角度,简单介绍一下这些功能和沿由. P ...
- IIS6.0文件解析漏洞小结
今天搞站,本来这个站是aspx的,webserver是IIS6.0的,进入后台之后,发现有一个上传图片的地方,于是,我就上传了一张asp/aspx的一句话图片木马,但是用菜刀连接的时候,没有成功get ...
- 读阿里巴巴Java开发手册v1.2.0之工程结构有感【架构篇】
首先,把昨天那俩条sql语句的优化原因给大家补充一下,第一条效率极低,第二条优化后的,sql语句截图如下: 经过几个高手的评论和个人的分析: 第一条sql语句查询很慢是因为它首先使用了in关键字查询, ...
- 阿里官方Java代码规范标准《阿里巴巴Java开发手册 终极版 v1.3.0》
终极版 v1.3.0 2017年开春之际,阿里诚意献上重磅大礼:<阿里巴巴Java开发手册>,首次公开阿里官方Java代码规范标准.这套Java统一规范标准将有助于提高行业编码规范化水平, ...
- 浏览器端类EXCEL表格插件 版本更新 - 智表ZCELL产品V1.1.0.1版本发布
智表(ZCELL),浏览器下纯JS表格控件,为您提供EXCEL般的智能体验! 纯国产化.高性价比的可靠解决方案. 更新说明 让大家久等了.因为最近忙其他项目,发布时间稍有延迟. 下次版本更新 ...
- 智表ZCELL产品V1.4.0开发API接口文档 与 产品功能清单
为了方便大家使用ZCELL,应网友要求,整理编写了相关文档,现与产品一起同步发布,供大家下载使用,使用过程中如有疑问,请与我QQ联系. 智表(ZCELL)V1.4.0版本 功能清单文档下载地址: 功 ...
- kubernetes之Kubeadm快速安装v1.12.0版
通过Kubeadm只需几条命令即起一个单机版kubernetes集群系统,而后快速上手k8s.在kubeadm中,需手动安装Docker和kubeket服务,Docker运行容器引擎,kubelet是 ...
随机推荐
- 使用logstash迁移elasticsearch数据
支持同集群复制和跨集群复制 优点:通过简单配置即可实现.零编码. 缺点:logstash 单点运行迁移,速度一般. 以es2.2.1 logstash2.2.1 为例 以下logstash 配置功能 ...
- VMware中centos虚拟机的安装
几个月前,就下载了VMware,centOS 6 操作系统镜像.苦于对linux的不理解和安装教程的不熟悉,一直未安装成功. 几天前,终于独自安装好了,特此记录一下. 安装其实很简单,之前失败是在于安 ...
- 通过SublimeCodeIntel设置JavaScript自动补全
1.首先安装SublimeCodeIntel包. 进入sublime,通过Ctrl+Shift+P进入包管理,输入pci(首字母),选择Package Contrl:Intall Package,如图 ...
- shell中防止意外发生的两个实用的设置
set -o nounset set -o errexit set -o nounset 在默认情况下,遇到不存在的变量,会忽略并继续执行,而这往往不符合预期,加入该选项,可以避免恶果扩大,终止脚本的 ...
- CSS 小工具集
http://www.colorzilla.com/gradient-editor/css渐变生成工具.http://linxz.github.io/tianyizone/css志爷小工具.http: ...
- Linux之curl
简介 curl 是常用的命令行工具,用来请求 Web 服务器.它的名字就是客户端(client)的 URL 工具的意思. 它的功能非常强大,命令行参数多达几十种.如果熟练的话,完全可以取代 Postm ...
- PHP敏感词替换
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8& ...
- React+Redux+Dva学习
Redux提供一些api来管理数据,并且只能通过它提供的方式来修改.Redux包括三个部分:store, action,reducer. store:是一个规范的state,就像一个有条理的数据库,R ...
- spring整合shiro配置BUG,Tomcat启动不了:Error during artifact deployment. See server log for details
现象 spring配置shiro权限控制之后,项目无法启动 [2019-08-09 09:00:35,800] Artifact export_web_manager:war exploded: Er ...
- frp 路由穿透(github开源穿透软件)
server配置(windows):下载: https://github.com/fatedier/frp/releases [common] # 服务器端端口 bind_port = # 客户端连接 ...