CVE-2021-47948WordPress GetPaid Plugin 2.4.6版本存在HTML注入漏洞。由于插件在处理支付表单配置时,未对“Help Text”字段进行充分的输入验证和过滤,拥有低权限的已认证攻击者可以利用该漏洞注入任意HTML代码。这些恶意代码(包括图片标签和脚本)会被存储在数据库中,并在用户查看支付表单时在浏览器中执行,可能导致信息泄露或会话劫持。
该漏洞的原理在于服务器端对用户输入的“Help Text”字段内容缺乏转义处理。攻击者首先需要获取WordPress网站的低权限账户(如订阅者或编辑者)。登录后台后,攻击者进入支付表单创建或编辑页面,在Help Text字段中注入恶意Payload,例如`<img src=x onerror=alert(1)>`或`<script>malicious_code</script>`。当表单被提交保存时,后端直接将原始数据存入数据库。当其他用户或管理员访问该支付表单页面时,服务器会读取该字段并渲染到前端页面,触发浏览器解析并执行其中的恶意脚本。由于CVSS向量显示Scope Changed (S:C),该漏洞可能突破同源策略限制。