Lucene search

K
seebugFlsfSSV:89365
HistorySep 07, 2015 - 12:00 a.m.

WordPress WP Mobile Edition Plugin 2.2.7 /wp-content/themes/mTheme-Unus/css/css.php 文件下载

2015-09-0700:00:00
flsf
www.seebug.org
24

影响:

  • WP Mobile Edition版本低于2.2.7有该漏洞。
  • 首次启用WP Mobile Edition 插件之后,即使停用或删除该插件,漏洞也会一直存在。
  • 即使升级插件,若已经启用过漏洞存在的版本,漏洞也同样存在。
  • css.php用于压缩css文件,并不只存在于该插件之中,而是 https://github.com/mrclay/ 的开源代码,使用该文件的网站也存在该漏洞。

详情

插件下载地址:https://downloads.wordpress.org/plugin/wp-mobile-edition.2.2.7.zip

首次启用该插件,插件会自动安装一个theme:mTheme-Unus。该theme下css/css.php文件存在任意文件可读漏洞。
漏洞代码:

    foreach ($files as $file)
    {
        $content .= file_get_contents($file);
    }

    // Remove comments
    $content = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $content);
    
    // Remove tabs, spaces, newlines, etc...
    $content = str_replace(array("\r", "\n", "\t", '  ', '   '), '', $content);
    
    // Delete cache files older than an hour
    $oldDate = time()-3600;
    $cachedFiles = scandir($cachePath);
    foreach ($cachedFiles as $file)
    {
        $filemtime = @filemtime($cachePath.$file);
        if (strlen($file) == 32 and ($filemtime === false or $filemtime < $oldDate))
        {
            unlink($cachePath.$file);
        }
    }
    
    // Write cache file
    file_put_contents($cachePath.$md5, $content);
    
    // Output
    echo $content;


file_get_contents()读取$file路径的内容之后,echo输出,导致漏洞。
删除,更新,停用该插件,并不会影响到漏洞存在的文件。

漏洞证明:

更新至:2.8版本

访问:website/wp-content/themes/mTheme-Unus/css/css.php?files=…/…/…/…/wp-config.php

漏洞依旧存在。

漏洞修复建议:

删除wp-content/themes/mTheme-Unus/css/css.php文件。

写了poc没有提交的地方。