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 按照功能分析漏洞的更多相关文章

  1. 读阿里巴巴Java开发手册v1.2.0之编程规约有感【架构篇】

     不为过去蹉跎,改变当下. 为什么开篇就送这么一句话给大家,我相信很多处于1-3年码龄的哥们儿们,在平时的编码历程中编码的个性可能是多彩的,每个人都有每个人特定的风格,但是我们现在这么随意写,以后这么 ...

  2. 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中表单字段设 ...

  3. RapidJSON v1.1.0 发布简介

    时隔 15.6 个月,终于发布了一个新版本 v1.1.0. 新版本除了包含了这些日子收集到的无数的小改进及 bug fixes,也有一些新功能.本文尝试从使用者的角度,简单介绍一下这些功能和沿由. P ...

  4. IIS6.0文件解析漏洞小结

    今天搞站,本来这个站是aspx的,webserver是IIS6.0的,进入后台之后,发现有一个上传图片的地方,于是,我就上传了一张asp/aspx的一句话图片木马,但是用菜刀连接的时候,没有成功get ...

  5. 读阿里巴巴Java开发手册v1.2.0之工程结构有感【架构篇】

    首先,把昨天那俩条sql语句的优化原因给大家补充一下,第一条效率极低,第二条优化后的,sql语句截图如下: 经过几个高手的评论和个人的分析: 第一条sql语句查询很慢是因为它首先使用了in关键字查询, ...

  6. 阿里官方Java代码规范标准《阿里巴巴Java开发手册 终极版 v1.3.0》

    终极版 v1.3.0 2017年开春之际,阿里诚意献上重磅大礼:<阿里巴巴Java开发手册>,首次公开阿里官方Java代码规范标准.这套Java统一规范标准将有助于提高行业编码规范化水平, ...

  7. 浏览器端类EXCEL表格插件 版本更新 - 智表ZCELL产品V1.1.0.1版本发布

    智表(ZCELL),浏览器下纯JS表格控件,为您提供EXCEL般的智能体验! 纯国产化.高性价比的可靠解决方案. 更新说明     让大家久等了.因为最近忙其他项目,发布时间稍有延迟.  下次版本更新 ...

  8. 智表ZCELL产品V1.4.0开发API接口文档 与 产品功能清单

    为了方便大家使用ZCELL,应网友要求,整理编写了相关文档,现与产品一起同步发布,供大家下载使用,使用过程中如有疑问,请与我QQ联系. 智表(ZCELL)V1.4.0版本  功能清单文档下载地址: 功 ...

  9. kubernetes之Kubeadm快速安装v1.12.0版

    通过Kubeadm只需几条命令即起一个单机版kubernetes集群系统,而后快速上手k8s.在kubeadm中,需手动安装Docker和kubeket服务,Docker运行容器引擎,kubelet是 ...

随机推荐

  1. 李宏毅 线性回归预测PM2.5

    作业说明 给定训练集train.csv,要求根据前9个小时的空气监测情况预测第10个小时的PM2.5含量. 训练集介绍: (1):CSV文件,包含台湾丰原地区240天的气象观测资料(取每个月前20天的 ...

  2. 【Abode Air程序开发】Flex air文件打包和运行

    1 安装Adobe AIR 运行时,和java的JVM类似. Adobe AIR 运行时允许在桌面运行AIR应用程序,脱离游览器的束缚. 下载安装文件http://get.adobe.com/cn/a ...

  3. Java实验报告&&课程报告

    Java实验报告 班级 计算机科学与技术二班 学号 20188450 姓名 李代传 完成时间 2019/9/19 评分等级 实验二 Java简单类与对象 实验目的 掌握类的定义,熟悉属性.构造函数.方 ...

  4. C# 字典、集合、列表的时间复杂度

    List列表是顺序线性表,Add操作是O(1)或O(N),因为List是动态扩容的,在未扩容之前,其Add操作是O(1),而在扩容的时候,Add操作是O(N)的.其Contains方法,是按照线性检索 ...

  5. [Nowcoder212D]禁书目录_概率期望

    禁书目录 题目大意:清教需要定期给Index清除记忆,在此之前需要把当中的十万三千本禁书取出来......不幸的是,禁书一旦离开了Index就非常脆弱,具体来说,每一本禁书都有一个魔力值 ai ,其记 ...

  6. [转帖]兆芯发布国产X86处理器KX-6000和KH-30000,性能提升达50%,附详情介绍

    兆芯发布国产X86处理器KX-6000和KH-30000,性能提升达50%,附详情介绍 2019-06-20 09:56:38作者:linux人稿源:快科技 https://ywnz.com/linu ...

  7. 【Python】【demo实验16】【练习实例】【打印所有水仙花数】

    题目: 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153= ...

  8. Flink概述

    计算引擎 大数据计算引擎分为离线计算和实时计算,离线计算就是我们通常说的批计算,代表是Hadoop MapReduce.Hive等大数据技术.实时计算也被称作流计算,代表是Storm.Spark St ...

  9. 使用WSAIoctl获取AcceptEx,Connectex,Getacceptexsockaddrs函数指针

    运行WinNT和Win2000的系统上,这些APIs在Microsoft提供的DLL(mswsock.dll)里实现,可以通过链接mswsock.lib或者通过WSAioctl的SIO_GET_EXT ...

  10. Selenium 基本使用

    from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.c ...