利用级别:非常容易/远程
DREAD得分: 7.4
漏洞:options update导致的持久型跨站脚本漏洞
修补版本: 8.0.27
在对我们的Sucuri防火墙进行例行研究审核的时候,突然发现WordPress插件WP Live Chat Support中存在一个无需身份验证的持久型跨站脚本漏洞(XSS),影响了60000多个用户。
漏洞当前情况
尽管此安全漏洞已在8.0.27版本中得到修复,但攻击者还是可以利用此漏洞直接攻击那些尚未修复漏洞的网站,而且无需任何身份验证。
我们还不知道任何使用此漏洞的攻击事件。
披露/回应时间表:
- 2019年4月30日:初次联系。
- 2019年5月15日:补丁上线。
技术细节
这个漏洞涉及一个WordPress插件世界众所周知的攻击媒介,一个不受保护的admin_init
钩子,如下所示:
在这个漏洞的原理中,涉及到函数wplc_head_basic
,它会更新插件设置,而且不需要权限检查:
然后它会触发一个具有涉及更多关键设置的动作钩子:
由于admin_init
钩子可以被调用来访问/wp-admin/admin-post.php
或/wp-admin/admin-ajax.php
,所以未经身份验证的攻击者可以使用这些端点随意更新选项wplc_custom_js
。
而且此选项的内容会在任何live chat support插件出现的地方作为填充,这就导致攻击者可对存在漏洞的网站的多个位置注入恶意的javascript脚本。
尽快更新安全补丁
值得注意的是,可以绕过身份验证的攻击是非常严重的,因为这样就可以使用脚本实现自动化攻击,使黑客轻松地对存在漏洞的网站进行批量攻击。这个插件的安装量,漏洞的易用性以及攻击的影响程度使得这个漏洞特别危险。
为了防御此漏洞,我们强烈建议使用了WP Live Chat插件的用户尽快将其更新到8.0.27版本。无法立即更新的用户可以利用Sucuri防火墙或其他安全软件进行漏洞防护。
本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://blog.sucuri.net/2019/05/persistent-cross-site-scripting-in-wp-live-chat-support-plugin.html?utm_source=Twitter&utm_medium=Social&utm_campaign=Blog&utm_term=EN&utm_content=Persistent-Cross-site-scripting-in-WP-Live-Chat-Support-Plugin