WordPress 插件 Media Library Assistant 2.81-(LFI和XSS)

释放双眼,带上耳机,听听看~!

WordPress 插件 Media Library Assistant 2.81-(LFI和xss)

前言

个人觉得漏洞威胁不算太大,但也作为一个弱鸡的学习经历将其记录下来

Media Library Assistant用于进行图像和文件管理

影响版本

<2.82

漏洞版本下载地址:https://downloads.wp.xz.cn/plugin/media-library-assistant.2.81.zip

LFI

漏洞位置:

/media-library-assistant/includes/mla-file-downloader.php

引入class-mla-file-downloader.php,且注意下文的两个参数:mla_download_filemla_download_type以及方法:mla_process_download_file()

跟入mla_process_download_file(),注意到:

$file_name = $args['mla_download_file'];
                $match_name = str_replace( '\\', '/', $file_name );
                $base_dir = pathinfo( __FILE__, PATHINFO_DIRNAME );
                $match_dir = str_replace( '\\', '/', $base_dir );
                $allowed_path = substr( $match_dir, 0, strpos( $match_dir, 'plugins' ) );

            if ( 0 !== strpos( $match_name, $allowed_path ) ) {
                $message = 'ERROR: download path out of bounds.';
            } elseif ( false !== strpos( $match_name, '..' ) ) {
                $message = 'ERROR: download path invalid.';
            }
        } else {
            $message = 'ERROR: download argument(s) not set.';

可以看出为了防止目录穿越对..进行了过滤,只能读取plugin目录下的内容,这么来看,可能可以读取插件目录下的某些信息但利用效果似乎不大

然后就可以进行下载:

if ( empty( $message ) ) {
            header('Pragma: public');   // required
            header('Expires: 0');       // no cache
            header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
            header('Last-Modified: '.gmdate ( 'D, d M Y H:i:s', filemtime ( $file_name ) ).' GMT');
            header('Cache-Control: private',false);
            header('Content-Type: '.$args['mla_download_type']);

poc:

http://127.0.0.1/wordpress/wp-content/plugins/media-library-assistant/includes/mla-file-downloader.php?mla_download_type=text/html&mla_download_file=C:\phpstudy\PHPTutorial\WWW\wordpress\wp-content\plugins\rest-api\extras.php

该漏洞不需要授权

修复

在2.82版本中,直接禁止了这一行为:

xss

前提:admin角色

设置/Media Library Assistant的所有标签的搜索框存在xss

views标签:includes/class-mla-settings-view-tab.php:

s参数即是注入点,无过滤

触发:

同理在uploads等的标签中的搜索框也存在:

修复

在2.82版本中增加了wordpress内置函数esc_attr进行过滤操作

参考链接:

https://www.exploit-db.com/exploits/48315

https://wordpress.org/plugins/media-library-assistant/#developers

本文来自先知社区

相关文章

人已赞赏
安全教程

CVE-2020-600/6009/6010/11511:在线学习平台多安全漏洞

2020-5-16 0:06:15

安全教程

浅析TestLink的三个CVE

2020-5-16 0:06:26

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索