WordPress存储型XSS漏洞(CVE-2019-16219)

2019年10月8日11:18:33 发表评论
AD1 AD2 AD3 AD4

漏洞概述

WordPress是最主流的内容管理系统(CMS),占全球CMS市场份额的60.4%,远高于第二的Joomla!(5.2%)。因此,有超过1/3的网站使用WordPress。FortiGuard研究人员近期发现一个WordPress中的存储型XSS 0day漏洞。该0day漏洞是由于WordPress 5.0中新内置的Gutenberg引发的XSS漏洞。该编辑器没有超过过滤Shortcode错误消息中的JavaScript/HTML代码。因此,有Contributor或更高权限的远程攻击者就可以在访问被黑页面的受害者浏览器中执行任意JS/HTML代码。如果受害者有更高权限,比如administrator权限,攻击者甚至可以入侵整个web服务器。

该XSS漏洞CVE编号为 CVE-2019-16219,影响WordPress 5.0到5.0.4,5.1和5.1.1版本。

漏洞分析

在WordPress 5.0中,用户可以在文章中添加Shortcode块。在添加特定HTML编码的字符到Shortcode块,然后重新打开文章时,就显示错误信息,以&lt;字符为例,预览时会解码&lt;为<。

WordPress存储型XSS漏洞(CVE-2019-16219)

WordPress存储型XSS漏洞(CVE-2019-16219)

预览时的XSS过滤器可以很容易地过滤,比如POC"&gt;&lt;img src=1 onerror=prompt(1)&gt;:

WordPress存储型XSS漏洞(CVE-2019-16219)

受害者查看文章时,XSS代码就会在浏览器中执行。

WordPress存储型XSS漏洞(CVE-2019-16219)

如果受害者有admin权限,攻击者就可以利用该漏洞来获取管理员账号的完全,使用WordPress内置功能来GetShell。然后控制服务器。

比如,攻击者可以在web服务器上保持JS文件,如wpaddadmin[.]jshttps://www.agesec.com/xss-and-wordpress-the-aftermath/ 。JS代码会用用户名attacker和密码attacker添加一个WordPress管理员账号,代码如下:

部分内容被隐藏
评论刷新后查看

然后攻击者就可以用下面的POC来插入JS:

部分内容被隐藏
评论刷新后查看

WordPress存储型XSS漏洞(CVE-2019-16219)

高权限的受害者查看该post时,就会创建管理员帐户attacker。

WordPress存储型XSS漏洞(CVE-2019-16219)

WordPress存储型XSS漏洞(CVE-2019-16219)

然后攻击者就可以修改现有的php文件到webshell,然后用webshell来控制web服务器。

WordPress存储型XSS漏洞(CVE-2019-16219)

WordPress存储型XSS漏洞(CVE-2019-16219)

目前WordPress已经发布了补丁,研究人员建议用户升级到最新的WordPress版本。

发表评论

后发表评论