WordPress Slimstat插件存储型XSS漏洞
ang010ela 嘶吼专业版
Slimstat 是WordPress的一个插件,目前安装量已经超过10万,该插件允许网站收集分析数据。该插件会追踪浏览器和操作系统的特定信息,并利用网页访问来优化网站分析技术。
研究人员发现Slimstat插件的管理员dashboard存在非授权的存储型XSS漏洞。该漏洞的利用等级为容易,可以远程利用。版本号低于4.8.1的插件都该漏洞的影响,4.8.1版本中修复了该漏洞。
概述
该漏洞允许访问者在插件的access log功能中注入任意JS代码,access log功能在插件的access log和登陆后的默认页面admin dashboard index都可见。
Admin dashboard index
使用access log,就可以看到用户访问网站的详细情况,包括ip地址、使用的操作系统、使用的浏览器和浏览器安装的插件等。客户端脚本可以对客户端的信息进行指纹操作,然后执行到插件的请求以给出自己的属性。
恶意用户可以假装浏览器有某个插件来伪造分析请求,以在插件access log中注入任意代码。这在管理员登陆后就会自行。
技术细节
插件的期望值是默认支持的浏览器插件,比如pdfviewer, flash ,java。
插件的特征会使用 strip_tags php方法来进行处理,移除原始插件值的标签。
在查看access log记录的细节时,其中一个细节是安装的插件的图片,比如下图中的pdf viewer。
下面介绍插件的图片是如何生成的,其中$a_plugin就表示该插件:
因为该插件使用strip_tags处理过,并注入到一个属性中,因此可以使用一个单引号来进行逃逸(绕过),并添加一个事件处理器。将插件部分变成plugin’onerror=’alert(document.domain),生成的HTML代码如下所示:
因为图片是无效的,因此会触发onerror event事件,导致存储型XSS攻击。
建议
研究人员建议使用受影响版本插件的用户尽快更新最新版插件。如果没有条件更新,研究人员建议开启防火墙等安全技术手段来对该漏洞进行安全防护。