WordPress插件IEAC漏洞分析及组合利用尝试

栏目: 编程工具 · 发布时间: 5年前

内容简介:上一次在《该插件主要是可以快速的向文章中嵌入自己的学习内容(e-Learing),同时该插件可以直接对zip压缩文件进行处理,文件可以先压缩到zip中再一起上传到服务器中。

*本文作者:Kriston,本文属FreeBuf原创奖励计划,未经许可禁止转载。

上一次在《 WordPress插件Form Maker SQL注入漏洞分析 》中主要分析了Wordpress插件的注入漏洞,这个漏洞可以获取用户网站敏感信息,但是在网站服务器突破方面比较鸡肋。最近WordPress的另一个插件(真的是插件多如牛毛)insert or embed articulate content爆出远程代码执行漏洞,在登陆网站后可通过zip压缩文件上传 php 后门,我就突然想到这两个插件的漏洞组合起来就很完美了。

I nsert or Embed articulate content插件介绍

该插件主要是可以快速的向文章中嵌入自己的学习内容(e-Learing),同时该插件可以直接对zip压缩文件进行处理,文件可以先压缩到zip中再一起上传到服务器中。

测试环境

本地测试环境为 WordPress5.1 +  I nsert or Embed articulate content4.2995(一下简称IEAC)

漏洞复现

step1:通过插件上传在WordPress中安装存在漏洞的插件  I nsert or Embed articulate content

step2:准备一个php后门脚本并压缩到poc.zip中,在这里我用的最简单的一句话:

  <?php eval($_POST[]);?>

step3:以任意用户登陆Wordpress选择 ‘文章—>写文章—>添加区块—>e-Learining’

WordPress插件IEAC漏洞分析及组合利用尝试

step4:在上传功能中选择准备好的poc.zip,并上传该文件

WordPress插件IEAC漏洞分析及组合利用尝试

step5:连接后门文件: http://website/ wp-content/uploads/articulate_uploads/poc/test.php

WordPress插件IEAC漏洞分析及组合利用尝试 可以直接连接到后台进行文件管理,压缩包里的文件被成功解压到目标文件夹内。

漏洞分析

下载插件源码后分析了一下该插件漏洞点以及存在的问题。

在源码程序中搜索处理zip压缩包的函数全部集中在functions.php文件中:

WordPress插件IEAC漏洞分析及组合利用尝试 在对源码审计后发现插件接收zip压缩包之后对压缩包文件名进行了过滤,但是对压缩包的内容没有进行过滤,直接解压到了目标文件下 

/functions.php
    ...    
    $dir = explode(".",$fileName);
    $dir[0] = str_replace(" ","_",$dir[0]);       
    $target = getUploadsPath().$dir[0];
    $file = $filePath ;          
    while(file_exists($target))
    {
    $r = rand(1,10);
    $target .= $r;
    $dir[0] .= $r;
    }
    $arr = extractZip($file,$target,$dir[0]);
    ...
/functions.php
  function extractZip($fileName,$target,$dir){
      add_filter('admin_memory_limit', 'articulate_run_admin_memory_limit_hook', 100, 1 );
      #admin_memory_limit hook is called in wp_raise_memory_limit function that is called in unzip_file function.   $arr = array();
      $unzipper = new Quiz_Unzip( true );
      $unzip = $unzipper->unzip_file( $fileName, $target );
      ...
  }

解压目标目录为/ wp-content/uploads/articulate_uploads,没有设置任何访问限制,任意用户都可以直接访问。

    define('WP_CONTENT_DIR_NAME','wp-content'); #CHANGE THIS IF YOUR content directory is defferent.
    define('WP_UPLOADS_DIR_NAME','uploads');
    define('WP_QUIZ_EMBEDER_UPLOADS_DIR_NAME','articulate_uploads');
    define('WP_QUIZ_EMBEDER_CAPABILITY','edit_posts');

漏洞组合尝试

首先回顾一下 WordPress插件Form Maker 的使用及影响: 

CVE-2019-10866:可利用有效登陆用户通过 sql 注入获取服务器敏感信息

一开始的组合利用思路: 首先通过插件Form Maker的漏洞利用低权限的用户通过注入获得管理员用户,然后以管理员身份登陆网站安装插件IEAC,在上传后门并控制服务器 。(一切想的如此美好)

但是在利用Form Maker漏洞进行注入的时候发现了问题:

在上一篇对该插件漏洞分析时并没有分析用户登陆部分的影响,经过验证该插件能够成功注入并获取敏感数据的账户必须是Administrtor!!!(无语了很久),其他类型的用户在进行注入尝试时全部会显示403错误(通常由于服务器上文件或目录的权限设置导致的WEB访问错误)。

在这里先学习一下WordPress中的角色分配:

WORDPRESS自身的用户角色

仅指Wordpress安装时就有的几种用户角色(所列为角色名称):

Subscriber:订阅者

Contributor :投稿者

Author :作者

Editor :编辑

Administrator :管理员

此外,如果启用了Wordpress多站,将会多出一种用户角色:Super Admin(超级管理员)。

再回到IEAC这个插件漏洞上来,这个插件漏洞也需要用户登陆,在进行验证后除了订阅者之外其他类型的用户均可以利用这个漏洞,但是除了管理员外的用户是无权对网站的插件进行安装移除的。也就是说这个漏洞可以不用管理员账户就可以触发(不知为何要进行漏洞组合尝试的我在风中凌乱)。

结语

WordPress插件的漏洞近期出现了很多,从注入到远程代码执行还有网站重定向等等。当初想进行漏洞组合利用也是想根据不同漏洞的特点相互弥补不足,但是可能是因为漏洞研究做的还不够细致(就是太菜),最终结果并不是很理想,但是我认为这种利用 多个插件组合攻击 的方式还是值得研究与警惕的。大家如果有什么更好的组合方式可以留言评论,相互学习。以上,如果有不对的地方也希望大家主动私信,我们共同进步。

*本文作者:Kriston,本文属FreeBuf原创奖励计划,未经许可禁止转载。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Lean Analytics

Lean Analytics

Alistair Croll、Benjamin Yoskovitz / O'Reilly Media / 2013-3-18 / USD 29.99

If you're involved with a startup, analytics help you find your way to the right product and market before the money runs out. But with a flood of information available, where do you start? This book ......一起来看看 《Lean Analytics》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

在线进制转换器
在线进制转换器

各进制数互转换器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具