首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Typo3 CVE-2019-12747 反序列化漏洞分析

TCA 在进行分析之前,我们需要了解下Typo3的TCA(Table Configuration Array),在Typo3的代码中,它表示为$GLOBALS['TCA']。...在Typo3中,TCA算是对于数据库表的定义的扩展,定义了哪些表可以在Typo3的后端可以被编辑,主要的功能有 表示表与表之间的关系 定义后端显示的字段和布局 验证字段的方式 这次漏洞的两个利用点分别出在了...page时,正常的表单中就携带doSave == 1,而doSave的值就是在方法preInit中获取的。...方法中,因此,我们只需要分析$table == pages时的循环即可。...而且这次分析Typo3给我的感觉与其他网站完全不同,我在分析创建&修改page这个功能的参数过程中,并没有发现什么过滤操作,在后台的所有参数都是根据TCA的定义来进行相应的操作,只有传入不符合TCA定义的才会抛出异常

2.6K30

Typo3 CVE-2019-12747 反序列化漏洞分析

TCA 在进行分析之前,我们需要了解下Typo3的TCA(Table Configuration Array),在Typo3的代码中,它表示为$GLOBALS['TCA']。...在Typo3中,TCA算是对于数据库表的定义的扩展,定义了哪些表可以在Typo3的后端可以被编辑,主要的功能有 表示表与表之间的关系 定义后端显示的字段和布局 验证字段的方式 这次漏洞的两个利用点分别出在了...page时,正常的表单中就携带doSave == 1,而doSave的值就是在方法preInit中获取的。...方法中,因此,我们只需要分析$table == pages时的循环即可。...而且这次分析Typo3给我的感觉与其他网站完全不同,我在分析创建&修改page这个功能的参数过程中,并没有发现什么过滤操作,在后台的所有参数都是根据TCA的定义来进行相应的操作,只有传入不符合TCA定义的才会抛出异常

2.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何在Ubuntu 16.04上使用uWSGI和Nginx为Django应用程序提供服务

    访问您服务器的域名或IP地址,然后8080在浏览器中访问: http://server_domain_or_IP:8080 你应该看到一个如下所示的页面: /admin在浏览器的地址栏中添加到URL的末尾...一旦激活,就在这个新环境中安装Django: cd ~ mkvirtualenv secondsite pip install django 新的环境将被创建和改变,你离开以前的虚拟环境。...读取配置时,这将被变量的值替换: [uwsgi] project = firstsite uid = sammy base = /home/%(uid) 接下来,我们需要配置uWSGI,以便它正确处理我们的项目...键入以下内容,遵循Nginx错误日志: sudo tail -F /var/log/nginx/error.log 现在,在浏览器中发出另一个请求以生成新的错误(尝试刷新页面)。...该socket指令指向文件中的/run/uwsgi文件(应该由ExecStartPre上面提到的服务文件中的行创建)。

    4.3K00

    Struts2标签库和OGNL

    在每次请求执行Action之前都会创建新的ActionContext。保存到ActionContext对象中的数据可以通过Struts2标签和OGNL表达式语言进行访问。 2. ​...ValueStack是OGNL的根,同时由于OGNL上下文中的根对象可以直接访问,所以通过OGNL访问ValueStack中的数据时,不需要使用任何特殊的标记,而访问ActionConext中的其他对象时则需要使用...现在的Web应用一般都使用Servlet 2.4以上的规范,因此我们就无须在web.xml文件中对标签库进行配置,因为Servlet 2.4以上的规范可以直接读取标签库定义文件(TLD文件),在JSP页面中直接通过下面一行代码就可以导入...ValueStack是OGNL的根,同时由于OGNL上下文中的根对象可以直接访问,所以通过OGNL访问ValueStack中的数据时,不需要使用任何特殊的标记,而访问ActionConext中的其他对象时则需要使用...ActionContext是OGNL的根 2. 假设session中存在名为uid的属性,通过OGNL访问该属性的代码是()。 A. #uid E. uid F. #session.uid G.

    10810

    面试题整理|45个CSS面试题

    例如对一个站点中的多个页面使用了同一套CSS样式表,而某些页面中的某些元素想使用其他样式,就可以针对这些样式单独定义一个样式表应用到页面中。...CSS伪元素是添加到选择器的关键字,可用于设置所选元素的特定部分的样式。 “first-line” 伪元素用于向文本的首行设置特殊样式,只能用于块级元素!...一般浏览器字体大小默认为16px,则2em == 32px; rem 是根 em(root em)的缩写,rem作用于非根元素时,相对于根元素字体大小;rem作用于根元素字体大小时,相对于其出初始字体大小...这些元素不会影响其他元素的位置。 固定 fixed 将元素从页面流中移除,并将其放置在相对于视口的指定位置,并且在滚动时不会移动。 粘性sticky 粘性定位是相对定位和固定定位的混合。...浏览器供应商有时会在实验性或非标准CSS属性和JavaScript API中添加前缀,因此,从理论上讲,开发人员可以尝试新的想法,同时从理论上防止在标准化过程中依赖他们的实验,然后破坏Web开发人员的代码

    4.5K30

    如何处理WordPress网站404状态死链

    Google浏览器的404报错通知页面 404报错通知页面还可能是个性化的,因为许多站点实际上会创建一个自定义404错误页面,而不是显示上面的消息之一。...重新生成WordPress中的永固定链接 但如果你使用自定义链接,需要让WordPress实现伪静态URL,则可能需要对服务器进行URL重写规则配置,具体操作如下: 如果你使用的是LNMP环境,一般情况下你在配置...但如果你在使用/%post_id%.html格式作为固定链接时发生链接无法访问,可以尝试手动配置Nginx或者Apache,配置参考如下: Nginx伪静态配置 一般目录为/usr/local/nginx...安装并启用插件后,转到工具→Redirection,然后在“Source URL”框中输入404报错页面URL,并在“Target URL”框中输入内容的新链接: 使用Redirection插件设置重定向...(2)宝塔面板添加301重定向 如果您使用宝塔面板进行服务器管理,则通过宝塔面板创建重定向规则实现301重定向跳转来解决404错误页面问题(前提是有新的内容可以替代旧链接页面内容)。

    4.9K10

    PHPCMS_V9.2任意文件上传getshell漏洞分析

    init操作,因为系统在没有指定模块和控制器的时候,会执行默认的模块和操作....将Tao.zip中数据,按照上图的操作添加至请求中,最终效果如下图。然后放行 ?.../index.php);而这个函数的执行流程就是: 在保存上传头像文件夹处,创建一个跟用户id对应的文件夹 将前端打包的压缩包通过post传来的数据进行保存,保存名为用户id的zip文件 解压数据包 判断未在数组内文件名命名的文件...$this->uid.'.zip'; file_put_contents($filename, $this->avatardata); 上面代码第五行创建目录。之后进行新命名压缩包,名为用户id值。...然后将我们上面通过伪协议获取的数据进行写入 ? 如下图,可以发现,新建了1.zip ? 压缩包内容如下,就是我们修改上传的数据 ? 之后解压缩。。。 ? 走到遍历白名单判断文件,排除.(当前目录)..

    3.9K20

    宝塔面板NGINX实现站点的伪静态规则

    在宝塔面板中,你可以通过设置 Nginx 的重写规则来实现站点的伪静态规则。具体步骤如下:打开宝塔面板并进入网站设置:登录宝塔面板。在左侧菜单中选择“网站”,然后点击你要设置伪静态规则的站点。...进入伪静态设置页面:在站点设置页面中,找到“设置”按钮并点击。在弹出的设置窗口中,选择“伪静态”选项卡。添加伪静态规则:在伪静态规则的文本框中输入你的伪静态规则。...通过站点根目录的文件自动设置伪静态规则如果希望通过某个文件自动设置伪静态规则,可以使用 .htaccess 文件(适用于 Apache)或者在 Nginx 配置文件中包含一个外部文件。...这需要你在站点的 Nginx 配置文件中做一些额外的设置:创建包含伪静态规则的文件:在站点的根目录下创建一个文件,例如 rewrite_rules.conf,并在其中添加伪静态规则。if (!...在 server 块中包含刚刚创建的 rewrite_rules.conf 文件。

    75421

    discuz X3全局变量$_G

    中所有的缓存保存在 $_G[cache] 中 $_G[member] 会员信息数据 $_G[uid] 用户 uid $_G[username] 用户名 $_G[adminid] 用户管理组 id $_G...用户权限按照其所在的主用户组 ID 标记为 $_G['groupid'],相关权限从该 $_G['groupid'] 所对应的系统缓存中读出,存放于 $_G['group']。...载入缓存可以使用 loadcache() 函数,将缓存载入到 $_G[cache] 数组中 全局变量系统篇 $_G['uid'] => 当前登录UID $_G['username'] => 当前登录用户名...当前页面所在频道 $_G['basefilename'] => 当前页面php文件名 $_G['staticurl'] => 程序附件目录 $_G['mod'] => 当前页面的MOD值【例如:forum.php...'setting'][rewriterule] => 后台伪静态规则情况 $_G['setting'][ucenterurl] => UCenter地址 $_G['setting'][plugins]

    2K30

    如何在Debian 8上使用uWSGI和Nginx为Django应用程序提供服务

    创建Django项目 现在我们有了虚拟环境工具,我们将创建两个虚拟环境,在每个环境中安装Django,并启动两个项目。...您的提示将更改为表示您现在正在新的虚拟环境中运行。它看起来像这样:(firstsite)user@hostname:~$。括号中的值是虚拟环境的名称。...在浏览器中访问服务器的域名或IP地址,然后访问8080: http://server_domain_or_IP:8080 你应该看到一个如下所示的页面: [Django public page] 在浏览器的地址栏中添加...一旦激活,就在这个新环境中安装Django: $ cd ~ $ mkvirtualenv secondsite $ pip install django 新的环境将被创建和改变,你离开以前的虚拟环境。...接下来,我们将创建一个systemd单元文件,以便在启动时自动启动uWSGI。 我们将在/etc/systemd/system目录中创建单元文件,用户创建的单元文件保存在该目录中。

    3.3K00

    【玩转Lighthouse】 利用LightHouse和lsky pro实现自己的图床

    兰空图床始于 2017 年 10 月,最早的版本由 ThinkPHP 5 开发,后又经历了数个版本的迭代,在 2021 年末启动了新的重写计划并于 2022 年 3 月份发布全新的 2.0 版本。...Mysql 5.7+ PostgreSQL 9.6+ SQLite 3.8.8+ SQL Server 2017+ 购买服务器 [c214e72e38309.png] 选择宝塔镜像 搭建 网站配置 1 宝塔创建新的域名目录...详见:安装要求 章节 # 准备安装 将安装包上传至站点目录然后解压,将站点的运行目录指向程序的 public 文件夹 配置网站的小细节 伪静态 nginx 需要设置伪静态,内容如下 location /...,在后续的使用过程中可能会因为权限导致文件无法读取、无法写入、创建文件夹等一系列问题。...开始安装 配置好域名以后,访问站点 首页 ,程序会自动跳转至安装页面,环境检测通过以后即可通过引导进行安装。 这样我们就有了一个图床

    2.9K11

    单页Web应用:JavaScript从前端到后端

    在执行环境中调用函数,会创建一个新的嵌套在已存在的执行环境内的执行环境 在标签内的所有东西都在全局执行环境中 调用first_function,会在全局执行环境中创建一个新的执行环境 在...2.使用Object.create来创建JS对象时,能增添一种更像是基于原型的感觉,它把原型作为参数并返回一个对象,使用这种方式,可以在原型对象上定义共同的属性和方法,然后使用它来创建多个共享相同属性的对象...2.闭包是阻止垃圾回收器将变量从内存中移除的方法,使得在创建变量的执行环境的外面能够访问到该变量 3.必须记住,每次调用函数时都会创建一个唯一的执行环境对象。...)、模块作用域两个或两个以上音节 13.命名未知类型的变量:包含data C.变量声明和赋值 1.创建新对象、映射或数组时,使用{}或[],不要用new Object()或new Array() 2.使用工具方法复制对象和数组...),因为位置参数的含义容易忘记且不能进行自我说明 7.每条变量赋值语句点用一行 D.函数 1.使用工厂模式构造对象 2.避免伪类对象构造器:即不要使用new关键字来构造伪类,如果忘记new关键字,就会破坏全局名字空间

    1.3K20

    html、css总结

    可替换元素 与行内块元素的性质相同,可以设置宽高,在一行内显示。...原因:当父元素没有设置足够的大小时,而子元素设置了浮动的属性,子元素就会跳出父元素的边界(脱离文档流),尤其是当父元素的高度为auto时,而父元素中又没有其他非浮动的可见元素时,父盒子的高度就会直接塌陷为零...After伪类清除浮动 外部盒子的after伪元素设置clear属性 推荐使用 IE标准的盒子模型(怪异盒模型) 相当与css3属性中的box-sizing里面的content-box Width里面所指的内容是...content+border+padding 单位:rem指相对于根元素的字体大小的单位,计算依赖根元素 Label标签 label 元素不会向用户呈现任何特殊效果。...Label与input共同使用可以制作出点击事件 外边距塌陷又称外边距合并 只有上下才会出现塌陷,左右不会 简单说就是子元素找不到父元素的border或者padding,就会与父元素上边距重叠 计算方式

    1.1K20

    如何用宝塔来安装下载的php源码教程

    登录宝塔面板 在浏览器中访问你的服务器IP地址或域名,并使用宝塔面板的登录凭据登录。默认登录地址为 https://your_server_ip:8888,使用你在安装宝塔时设置的用户名和密码登录。...创建站点 在宝塔面板中,找到左侧菜单中的「网站」,然后点击「添加站点」按钮。 站点名称: 输入一个唯一的站点名称。 网站目录: 设置站点的根目录,通常是 /www/wwwroot/站点名称。...配置站点设置 在宝塔面板中,找到刚刚创建的站点,在站点管理页面中,点击「设置」。 运行目录: 设置为你上传的PHP源码所在的目录。 PHP版本: 选择你想要使用的PHP版本。...伪静态: 如果你的PHP应用使用了伪静态规则,可以在这里配置。 点击「保存」。 6. 配置域名和SSL 如果你有域名,可以在站点设置中添加域名,并在「SSL」选项中启用SSL证书。 7....重启Web服务 在站点设置页面,点击「重启」按钮,确保新的配置生效。 8. 访问网站 通过浏览器访问你的域名或服务器IP地址,确保你的PHP应用正常运行。

    67710

    HTMLCSS 常见面试题汇总

    **严格模式与混杂模式:**严格模式的排版和JS运作模式是以浏览器支持的最高标准运行;而在混杂模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作; 当 DOCTYPE 不存在或者格式不正确时...**Quirks模式:**Quirks模式就是浏览器为了兼容早期针对旧版本浏览器设计、并未遵循W3C标准的网页而产生的一种页面渲染模式,这种模式又被成为“怪异模式”,简单来说就是一个新浏览器故意模拟许多在旧浏览器中存在的...CSS伪对象的区别 CSS引入伪类和伪元素的概念是为了描述一些现有CSS无法描述的东西,根本区别在于:它们是否创造了新的抽象元素; 伪类:描述了所有逻辑上存在但在文档树中无须标识的分类; 伪对象:代表了某个元素的子元素...(IE6不支持) **relative:**生成相对定位的元素,相对于其在普通流中的位置进行定位 **static:**默认值。没有定位,元素出现在正常的流中 14、CSS3有哪些新特性?...浏览器默认的 margin 和 padding 不同 IE6双边距bug 在IE6、IE7中元素高度超出自己设置高度,原因是IE8以前的浏览器中会给元素设置默认的行高的高度导致的 min-height

    1.6K20

    掌握Chrome开发工具:新一代前端开发技术

    最近,Chrome团队为调试和创建动画添加了一些新特性。 单击控制台左上角的下拉框中的“动画”开启动画调试工具,你可以通过它限制站点上所有动画的速度。 你也可以暂停所有动画。...如果要为这些伪态添加样式,可以添加一个新的选择器(使用“+”图标),并将:添加到选择器的结尾。...例如,如果我想要给一个logo类的li标签添加hover伪态样式,我需要构造一个新的伪类li.logo:hover,并且给他添加相关属性。 之后可以通过模拟hover状态来检查你的样式是否正确。...保存日志是一个复选框,它允许在页面刷新后仍然保存日志。这在调试需要刷新页面的网站问题时非常有用,因为默认情况下,所有控制台输出的信息在页面刷新后都会被清除。...这是很有用的,因为在处理复杂或长期项目时,很容易在项目中累积无用的代码。 如果想要使用这个功能的话,首先升级Chrome到59或更高版本,之后切换到“Coverage”页面。

    1K20

    30道CSS 面试知识点总结

    它在网页设计中非常流行,其应用在XHTML中也很常见。 问题2:为什么要开发CSS? CSS是在1997年开发的,作为一种web开发人员设计他们正在创建的web页面布局的方法。...> 外部:在工作空间中创建单独的CSS文件,然后在创建的每个web页面中链接它们 ...问题 7:伪元素是什么意思? 伪元素是添加到选择器的关键字,它允许一种样式,即所选元素的特定部分。CSS用于在HTML标记中应用样式,它允许在不影响实际文档的情况下对文档进行额外标记。...渐进增强的概念是指从最基本的可用性出发,在保证站点页面在低级浏览器中 的可用性和可访问性的基础上,逐步增加功能及提高用户体验。...一般来说根元素是一个BFC区域,浮动和绝对定位的元素也会形成BFC,display属性的值为inline-block、flex这些 属性时也会创建BFC。

    1.4K20

    论坛部分数据找回,顺便升级Discuz! X3.5

    在部署和更新过程中遇到了一些问题,记录一下: 主要问题就是文件大小写导致的数据库无法链接,和主题或一些链接对 HTTPS 的兼容。...我遇到的就是之前可能是 Windows 系统,数据建的表全部是小写,配置文件中存的又是大写,导致数据库不能正常连接。...主题对 HTTPS 的兼容: 在部署完后开启 HTTPS,主题 CSS、JS 文件等不能正常加载,导致页面不能正常显示。 登录后台:全局 - 站点信息、域名设置,检查域名是否正确。...这样页面就能正常显示了。 设置伪静态: 如果页面还是有问题,或者文章页面打不开,需要配置一下服务器的伪静态。 可以通过 [域名]/admin.php?...action=checktools&operation=rewrite&frame=no 查看站点的伪静态规则。 至此,论坛恢复完成。

    50310

    掌握Chrome开发工具,做新一代前端开发

    最近,Chrome团队为调试和创建动画添加了一些新特性。 单击控制台左上角的下拉框中的“动画”开启动画调试工具,你可以通过它限制站点上所有动画的速度。 你也可以暂停所有动画。...如果要为这些伪态添加样式,可以添加一个新的选择器(使用“+”图标),并将:添加到选择器的结尾。...例如,如果我想要给一个logo类的li标签添加hover伪态样式,我需要构造一个新的伪类li.logo:hover,并且给他添加相关属性。 之后可以通过模拟hover状态来检查你的样式是否正确。...保存日志是一个复选框,它允许在页面刷新后仍然保存日志。这在调试需要刷新页面的网站问题时非常有用,因为默认情况下,所有控制台输出的信息在页面刷新后都会被清除。...这是很有用的,因为在处理复杂或长期项目时,很容易在项目中累积无用的代码。 如果想要使用这个功能的话,首先升级Chrome到59或更高版本,之后切换到“Coverage”页面。

    1.3K50

    详细拆解导航流程:从输入URL到页面展示,这中间发生了什么?

    用户输入 当用户在地址栏中输入一个查询关键字时,地址栏会判断输入的关键字是搜索内容,还是请求的 URL。 搜素内容:地址栏会使用浏览器默认的搜索引擎,来合成新的带搜索关键字的URL。...现在你应该理解了,在导航过程中,如果服务器响应行的状态码包含了 301、302 一类的跳转信息,浏览器会跳转到新的地址继续导航;如果响应行是 200,那么表示浏览器可以继续处理该请求。...准备渲染进程 默认情况下,Chrome 会为每个页面分配一个渲染进程,也就是说,每打开一个新页面就会配套创建一个新的渲染进程。...,你可以参考下图: 非同一站点使用不同的渲染进程 从图中任务管理器可以看出:由于极客邦和极客时间的标签页拥有相同的协议和根域名,所以它们属于同一站点,并运行在同一个渲染进程中;而 infoq.cn 的根域名不同于...;如果是其他情况,浏览器进程则会为 B 创建一个新的渲染进程。

    1.4K20
    领券