WordPress 插件
组件名称 Beam me up Scotty – 回到顶部按钮
受影响版本 <= 1.0.23
组件别名 beam-me-up-scotty
组件链接 https://wordpress.org/plugins/beam-me-up-scotty/
漏洞类别 A3: 注入
漏洞类型 跨站脚本攻击 (XSS)
管理员
在 Beam me up Scotty 插件的 1.0.23 及以下版本中,由于对“回到顶部按钮”自定义设置的数据类型验证和转义处理不足,存在存储型跨站脚本漏洞。
这些自定义设置仅可由具有管理员权限的用户访问,如果具有管理员权限的攻击者利用此漏洞,则所有显示“回到顶部按钮”页面的访客都将遭受跨站脚本攻击。
准备一个安装了 Beam me up Scotty 插件 1.0.23 或更低版本并已激活的 WordPress 站点。
导航至“回到顶部按钮”自定义菜单 (/wp-admin/themes.php?page=beam-me-up-scotty_settings)。

在代理工具(例如 BurpSuite)中启用拦截,点击“回到顶部按钮”设置菜单底部的“保存”按钮,以拦截保存“回到顶部按钮”自定义设置的请求包。

将请求负载中 beam_me_up_scotty_bottom_indentation 的值改为以下内容,然后点击 Forward。
20px;}</style><script>alert("XSS")</script><style>foo{bottom:0

访问 WordPress 站点后,可以确认 XSS 漏洞发生。


Beam me up Scotty 插件执行文件 /wp-content/plugins/beam-me-up-scotty/library/includes/dynamic-css.php 来应用“回到顶部按钮”的自定义设置。
该文件将自定义设置设置为 style 标签内“回到顶部按钮”的样式属性值。此时,可以验证“回到顶部按钮”的自定义设置未经任何转义处理就被引用于 style 标签中。

因此,如 PoC 所示,我们可以确认当输入包含 XSS 攻击脚本的 payload beam_me_up_scotty_bottom_indentation 时,由于该值未经任何转义处理就被引用为“回到顶部按钮”的样式属性值,脚本得以执行。

结果,访问 WordPress 站点时,可以看到以下 HTML 代码。
