Lucene search

K
seebugMy SeebugSSV:97249
HistoryApr 28, 2018 - 12:00 a.m.

WordPress Plugin File Upload 4.3.3 - Stored Cross-Site Scripting (PoC)

2018-04-2800:00:00
My Seebug
www.seebug.org
28

0.001 Low

EPSS

Percentile

49.7%

###0x01 漏洞概述

Wordpress的插件WordPress File Upload v4.3.3及其以前版本在管理后台存在一处存储型xss漏洞。攻击者可以通过该漏洞执行js脚本,获取管理员cookie。

漏洞名称:WordPress Plugin File Upload 4.3.3 - Stored Cross-Site Scripting (PoC)

漏洞来源:https://www.exploit-db.com/exploits/44444/

CVE:CVE-2018-9844

影响组件:WordPress Plugin File Upload (https://wordpress.org/plugins/wp-file-upload)

影响版本:<=v4.3.3

###0x02 漏洞验证

登录admin-panel,安装wp-file-upload插件并激活,打开Wordpress File Upload Control Panel,表单中的wfu_basedir文本框由于过滤不严格,可以直接输入js脚本:

输入

&lt;script&gt;alert(/joke/)&lt;/script&gt;

点击“update”按钮:

我们看下数据库中插入的值:

提交的参数进行十六进制编码存储到了数据库:

basedir=3c7363726970743e616c657274282f6a6f6b652f293c2f7363726970743e;

解码即为我们上面插入的js脚本。

###0x03 漏洞分析

通过分析,官网提供的v4.3.4版本及以后版本已经修复了该漏洞,为了分析的方便,直接对比v4.3.3和v4.3.4源码的不同之处:

文件:wfu_admin_settings.php

//v4.3.4
$new_plugin_options['basedir']=sanitize_text_field($_POST['wfu_basedir']);
//v4.3.3
$new_plugin_options['basedir'] = $_POST['wfu_basedir'];

在v4.3.4中,对输入的POST参数basedir增加了函数sanitize_text_field进行处理,将 < 等符号进行了转义,从而修复了漏洞。

###0x04 漏洞修复

升级到v4.3.4版本即可。