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

WordPress 5.0 RCE 详细分析

编号CVE-2019-6977,文章中主要提到在author权限账号下,可以通过修改Post Meta变量覆盖、目录穿越写文件、模板包含3个漏洞构成一个RCE漏洞。...所以这里我们可能需要新传一个媒体文件,然后通过变量覆盖来设置这个值。 加载模板 当我们成功设置了该变量之后,我们发现,并不是所有的页面都会加载模板,我们重新回到代码中。...最终加载模板的地方在 wp-includes/template.php line 634 [ ] 只要是在$template_names中需要被加载的文件名,会在当前主题的目录下遍历加载。...回溯跟入 wp-includes/template.php line 23 [ ] 继续回溯我们就能发现一些端倪,当你访问页面的时候,页面会通过你访问的页面属性,调用不同的模板加载函数。.../post-template.php line 1755 [ ] 只要我们能让模板加载时进入get_page_template或get_single_template,我们的模板就可以成功被包含。

1.2K00

Wordpress 5.0 RCE详细分析

所以这里我们可能需要新传一个媒体文件,然后通过变量覆盖来设置这个值。 加载模板 当我们成功设置了该变量之后,我们发现,并不是所有的页面都会加载模板,我们重新回到代码中。...最终加载模板的地方在 wp-includes/template.php line 634 只要是在$template_names中需要被加载的文件名,会在当前主题的目录下遍历加载。...回溯跟入 wp-includes/template.php line 23 继续回溯我们就能发现一些端倪,当你访问页面的时候,页面会通过你访问的页面属性,调用不同的模板加载函数。...line 1755 只要我们能让模板加载时进入get_page_template或get_single_template,我们的模板就可以成功被包含。...修复 1、由于该漏洞主要通过图片马来完成RCE,而后端图片库为gd时,gd会去除图片信息中exif部分,并去除敏感的php代码。

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

    30分钟全面解析-图解AJAX原理

    背景: 1.传统的Web网站,提交表单,需要重新加载整个页面。 2.如果服务器长时间未能返回Response,则客户端将会无响应,用户体验很差。...4.可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 3.什么叫异步 当前页面发送一个请求给服务器,当前页面不需要等待服务器响应才能操作网页。发送完请求之后,当前页面可以继续浏览,操作。...button的点击事件,当点击这个button时,重新设置Iframe的src,实现iframe里面的页面刷新。...1.让服务端能够操作这个变量,如果定义成局部变量,则服务端返回response时,不能对xmlhttp的属性赋值。回调函数要求request是全局的,才能访问这个变量和它的属性值。...版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。 特此声明:所有评论和私信都会在第一时间回复。

    3.3K121

    JavaScript Matomo 跟踪客户端

    手动触发事件 默认情况下,当 JavaScript 跟踪代码在每个页面视图上加载和执行时,Matomo 会跟踪页面视图。 然而,在现代 Web 应用程序中,用户交互不一定涉及加载新页面。...例如,如果您选择将变量名称=“性别”存储在索引= 1中,并且在索引= 1中记录另一个自定义变量,则“性别”变量将被删除并替换为存储在索引1中的新自定义变量。...默认情况下,它仅适用于在同一页面加载期间设置的自定义变量。...当用户登录时,设置用户ID 让我们举个例子。想象一下,您的网站使用 PHP 脚本通过登录表单对用户进行身份验证。...对于可见,我们的意思是内容块已经在视口中并且没有隐藏(不透明度、可见性、显示……)。 或者,您可以通过传递 来告诉我们在每次滚动后不要重新扫描 DOM checkOnScroll=false。

    99031

    Ajax全接触-imooc

    异步——填写表单时,页面当时就把数据发送到服务器(发送请求),服务器处理响应,把结果发给页面,过程中不不要重新加载页面,填写的错误会实时显示,不会有任何的等待 XMLHttpRequest对象——可以用于后台和服务器交换数据...GET:信息获取,使用URL传递参数,用来查询,不会影响数据本身,一般不用GET新建和修改操作,发送的信息对任何人都是可见的,所有的变量名和值都显示在URL当中,发送信息的数量限制在2000个字符。...处理跨域的方法: 1、代理proxy:通过在同域名的web服务器端创建一个代理,比如在北京的web服务器的后台来调用上海服务器的服务,然后再把响应结果返回给前端,这样前端在调用北京同域名的服务就和调用上海的服务效果相同了...,src属性认得不是后缀名,而是里面的实质内容,要加载的文件也不需要管是不是.js结尾,而是内部是否为合法的JS内容; 2.用script标签加载资源是没有跨域问题的,比如加载jQuery; 3.在资源加载进来之前定义好一个函数...,这个函数接收一个参数(数据),函数里面利用这个参数做一些事情,然后需要的时候通过script标签加载对应远程文件资源,当远程文件资源被加载进来的时候,就会去执行我们前面定义好的函数,并且把数据当作这个函数的参数传入进去

    5.7K20

    如何在一个Ubuntu 16.04服务器上将Nginx配置为Web服务器和Apache的反向代理

    介绍 Apache和Nginx是两种常用的PHP开源Web服务器。当托管具有不同要求的多个网站时,在同一虚拟机上运行它们会很有用。...这将为您提供PHP正在使用的配置设置列表。 在页面顶部,检查Server API是否显示FPM / FastCGI。...大约三分之二的页面,PHP变量部分将告诉你SERVER_SOFTWARE是Ubuntu上的Apache。...make sudo make install 在mods-available加载rpaf模块的目录中创建一个文件。...通过设置这些变量,PHP应用程序不必专门配置为在反向代理后面工作。 第十步 - 阻止对Apache的直接访问(可选) 由于Apache正在公共IP地址上侦听端口8080,因此每个人都可以访问它。

    4.2K30

    三分钟让你了解什么是Web开发?

    最初,这些信息都是作为文本存储的——这就是为什么在现在文本、媒体和文件都通过该协议进行交换的情况下,名称超文本传输协议仍然存在。 2、如何保存、检索和保存信息?...当用户成功地进行身份验证时,用户信息将存储在会话中,以便稍后可以重用该信息。 一个会话是什么? HTTP协议是无状态协议,这意味着客户端使用GET或POST发送到web服务器的任何请求都不会被跟踪。...为了克服这种无状态性,客户需要在每个请求中发送额外的信息,以在多个请求期间保留会话信息。这些额外的信息存储在cookie的客户端,在会话的服务器端。 会话是一个数组变量,它存储跨多个页面使用的信息。...在非ajax网站中,每个用户操作都需要从服务器加载完整的完整页面。这个过程是低效的,并且创建了一个糟糕的用户体验。所有的页面内容都消失了,然后重新出现。...Ajax是构建单页应用程序(SPAs)的技术之一。顾名思义,整个应用程序在一个页面中,所有内容都是动态加载的。

    5.8K30

    PHP性能规范

    $str2; // 速度稍慢 26 尽量静态化 Apache/Nginx解析一个PHP脚本的时间,要比解析一个静态HTML页面慢2至10倍,所以尽量使页面静态化,或使用静态HTML页面。...但是要注意,file_get_contents()在打开一个URL文件时候的PHP版本问题。...对PHP开发人员而言,目前提供了两种可用的缓存方案,一种是APC(Alternative PHP Cache,可选PHP缓存),它是一个可以通过PEAR安装的开源加速器。...另一种流行的方案是Zend Server,它不仅提供了操作码缓存技术,也提供了相应页面的缓存工具。 6 内存缓存 PHP通常在检索和数据分析方面扮演着重要角色,这些操作可能会导致性能降低。...但是赚到的是不仅占用的带宽减少了,而且你的页面加载会变得很快,优化了你的PHP站点性能。

    1.1K40

    简述php的垃圾收集机制

    1.简述php的垃圾收集机制 php中的变量存储在变量容器zval中,zval中除了存储变量类型和值外,还有is_ref和refcount字段。...refcount表示指向变量的元素个数,is_ref表示变量是否有别名。如果refcount为0时,就回收该变量容器。如果一个zval的refcount减1之后大于0,它就会进入垃圾缓冲区。...2.用什么方法来加快页面的加载速度 用到服务器资源时在打开,不用时,立即关闭服务器资源。...4.POST和GET有什么区别 1 、GET把参数包含在URL中,POST通过request body传递参数。 2、GET在浏览器回退时是无害的,而POST会再次提交请求。...GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。GET请求在URL中传送的参数是有长度限制的,而POST么有。

    53120

    PHP高效率写法(详解原因)

    其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存...26.Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。 尽量多用静态HTML页面,少用脚本。 28.尽量使用缓存,建议用memcached。...这种内置的函数使用gzip算法能压缩到90%; 37.通过参数变量地址得引用来使一个函数有多个返回值。 你可以在变量前加个“&”来表示按地址传递而非按值传递; 38....另一种流行的方案是Zend Server,它不仅提供了操作码缓存技术,也提供了相应页面的缓存工具。 6.内存缓存 PHP通常在检索和数据分析方面扮演着重要角色,这些操作可能会导致性能降低。...但是赚到的是不仅占用的带宽减少了,而且你的页面加载会变得很快,优化了你的PHP站点性能。

    1.2K20

    如何在Ubuntu上安装ionCube

    介绍 ionCube是一个PHP模块扩展,可加载加密的PHP文件并加速网页。ionCube Encoder可以把PHP源代码转换成ByteCode。...如果你有一个64位的Ubuntu服务器,你可能正在运行64位PHP。为此,我们将使用一个小的PHP脚本来检索有关我们服务器当前PHP配置的信息。...我们可以在php.ini配置它,为了方便配置,我们决定创建一个新的配置文件,以避免可能的冲突。...因此,我们将在/etc/php/7.0/apache2/conf.d目录中创建一个名为00-ioncube.ini的文件。使用00在文件名开头,确保该文件将先于其他PHP配置文件被加载。...保留info.php脚本可能存在一些安全风险,因为它允许潜在的攻击者查看有关您服务器的信息,因此请立即将其删除。

    1.9K01

    thinkphp6.0 底层源码分析 - 类的自动加载、配置文件初始化

    概述因为工作的需要,深入研究了一下thinkphp的源码,也算是对php知识的一个回归,工作这么多年,我一直坚信php是最好的Web编程语言,它可以做到成本和效率的一个平衡,知其然,更要知其所以然才是高手修炼之道类的自动加载不管是...1.使用了单例模式,原理:简化后,psr0,psr4,classmap每个分类对应一个数组,类名在这三个数组进行检索,检索完成后,includepublic static function getLoader...,其主要的操作有:加载环境变量、加载配置文件,加载语言包、监听 AppInit、initializers 数组包含的类的初始化。...reportException($e); $response = $this->renderException($request, $e); } return $response;}1.加载环境变量重点强调一下在初始化加载...$this->runningInConsole()) { // 重新申请一块比较大的buffer if (ob_get_level() > 0) { /

    537146

    -公共函数和全局常量

    返回: 运行环境变量, 默认值, 或者 null. 返回类型: mixed 用于检索事前设置在环境变量中的变量值,若无设置则返回默认值....若没有找到健值则返回一个布尔值结果(false). 在特定的运行环境中利用 .env 文件设置环境变量非常有用,例如数据库设置,API健值等....返回: 输出的数据(The escaped data). 返回类型: mixed 页面中包含的输出数据, 它在防止 XSS 攻击时很有用。...returns: 给定的键对应的值,或设置的默认值 返回类型: mixed 提供了一个简易的方式,在表单提交时访问 “原有的输入数据”。...$response (ResponseInterface) – 当前响应对象的实例。 检查页面当前是否通过HTTPS访问,如果不是,则用户通过HTTPS重定向回当前URI。

    3K20

    如何在Ubuntu 14.04和Debian 8上使用Apache设置ModSecurity

    只有在需要数据泄漏检测和保护时才需要这样做。因此,将其保留将使用腾讯云CVM资源并增加日志文件大小,因此我们将其关闭。...如果您导航回登录屏幕并使用不正确的凭据,您将看到消息无效的用户名或密码。 下一个工作是尝试SQL注入以绕过登录页面。为用户名字段输入以下内容。...最后,重新加载Apache以使规则生效。 sudo service apache2 reload 现在打开我们之前创建的登录页面,尝试在用户名字段上使用相同的SQL注入查询。...i:是一个不区分大小写的匹配。在成功匹配所有这三个规则时,将ACTION拒绝并使用msg "Spam detected."链操作进行记录。链动作模拟逻辑AND以匹配所有三个规则。...保存文件并重新加载Apache。 sudo service apache2 reload 在浏览器中打开http://your_server_ip/form.php。

    1.8K00

    CI基础知识笔记

    (array(‘help1′,’help2′,’help3’));一定要在使用前加载 可以配置autoload.php自动加载辅助函数 扩展辅助函数,可以在定义文件$config[‘subclass_prefix...第一个为系统默认的路由$route[‘default_controller’] = ‘welcome’; 第二个为404页面的路由$route[‘404_override’] = ”; 这个路由标识了如果请求的控制器无法访问的时候将加载哪个控制器...但它不会影响show_404()这个方法,这个方法依然会加载默认的位于application/errors/error_404.php的error_404.php页面。...(TRUE); 关闭分析器$this->output->enable_profiler(FALSE); 其中可以在配置文件profiler.php配置启用和禁用的变量,或者使用 $sections...exception_handler(),get_instance() 6.变量保留字$config,$mimes,$lang 7.常量ENVIRONMENT,EXT,FCPATH,SELF,BASEPATH

    1.3K30

    PHP推荐标准 PSR-6 和 PSR-16 区别

    这些规范包括自动加载规范、代码风格规范、HTTP消息接口规范、容器规范、事件规范等。 PHP-FIG 的底层原理是通过制定规范和标准来解决PHP项目之间的互操作性和可移植性问题。...(缓存是一个相当复杂的主题,一些保留意见仍然存在,投票结果证明了这一点) 建议的目标 PSR-6 的目标是“允许开发人员创建可以集成到现有框架和系统中的缓存感知库,而无需进行定制开发。”...项目通过其唯一的、不可变的密钥从池中检索并存储到池中。 执行 该建议在 Psr\Cache 命名空间中提供了四个接口。...请注意,通过其键检索项目不会产生存储在缓存中的实际值,而是一个实现 CacheItemInterface 的对象。 要测试是否发生缓存命中,请在缓存项上调用方法 isHit(),如以下代码片段所示。...要检索实际值,请在缓存项对象上调用 get() 方法。

    16110

    【Nginx36】Nginx学习:SSI静态文件服务器端包含模块

    这个模块的名称是 ngx_http_ssi_module 模块,它是一个过滤器,用于处理通过它的响应中的 SSI(服务器端包含)命令。目前,支持的 SSI 命令列表不完整。...ssi_last_modified 允许在 SSI 处理期间保留原始响应中的“Last-Modified”标头字段,以促进响应缓存。...上面代码中,我们使用 include 命令加载文件,使用 set 定义变量,使用 echo 输出变量。...使用 if 命令进行逻辑判断,最后的 block 命令是定义一个块,如果 include 加载的文件不存在时,就使用一个 stub 参数指定一个 block 显示 block 里面的内容。...然后 SSI 又不能动态接收参数,其实呀,使用 PHP 套上静态页面就可以接收参数了嘛。还是先准备一个 lcoation 来进行测试。

    25130

    你的应用太慢了,给我司带来了巨额损失,该怎么办

    记得很久之前看过谷歌官方有这么样的声明:如果一个页面的加载时间从 1 秒增加到3 秒,那么用户跳出的概率将增加 32%。...那么,是什么影响了页面的加载速度,导致用户跳出?其中有一个大的因素就是我们的应用用到了很多的第三方库。那么,有没有一种一举两得的方法,我即可以保留使用的第三方脚本,又可以保证页面的加载速度?...一个网站的请求越多,它的加载时间就越长。发送太多的 JavaScript 会让主线程很忙。过多的 JavaScript 会阻碍 DOM 的构建,延迟页面呈现的速度。...可以从URL检索数据,而不必进行整个页面刷新。这使得网页只更新页面的一部分,而不会中断用户正在做的事情。...Javascript 代理:代理对象允许你创建一个可以用来代替原始对象的对象,但它可能会重新定义基本的对象操作,如 get、set 和 define 属性。

    48300

    sqlmap简单中文说明

    连接超时后重新连接的时间(默认 3) –scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式 –safe-url=SAFURL 在测试过程中经常访问的 url 地址 –safe-freq...SQL 盲注时如何解析和比较 HTTP 响应页面的内容。...–level=LEVEL 执行测试的等级(1-5,默认为 1) –risk=RISK 执行测试的风险(0-3,默认为 1) –string=STRING 查询时有效时在页面匹配字符串 –regexp...=REGEXP 查询时有效时在页面匹配正则表达式 –text-only 仅基于在文本内容比较网页 Techniques(技巧): 这些选项可用于调整具体的 SQL 注入测试。...-U USER 用来进行枚举的数据库用户 –exclude-sysdbs 枚举表时排除系统数据库 –start=LIMITSTART 第一个查询输出进入检索 –stop=LIMITSTOP 最后查询的输出进入检索

    1.5K70

    如何在一个Ubuntu 18.04服务器上将Nginx配置为Web服务器和Apache的反向代理

    Apache和Nginx是目前比较流行的两种常用于PHP的开源Web服务器。当托管具有不同要求的多个网站时,在同一虚拟机上运行它们会很有用。...为避免这种情况,您将安装一个名为mod_rpaf的Apache模块,该模块会重写某些环境变量,让Apache看起来似乎是在直接处理来自Web客户端的请求。 我们将在一台服务器上托管四个域名。...这将为您提供PHP正在使用的配置设置列表。您将看到类似于此的输出: 在页面的顶部,检查服务器API设置为FPM / FastCGI。...接下来大约三分之二的页面,PHP变量部分将告诉你SERVER_SOFTWARE是Ubuntu上的Apache。...重新加载Apache以在配置无错误后应用更改: sudo systemctl reload apache2 为了证实该网站是否在运作,在浏览器中打开http://foobar.net:8080和http

    4.8K01
    领券