漏洞总结:Stored HTML Injection in Contact Email via nl2br() + Unescaped Blade Template 漏洞概述 漏洞类型:存储型 HTML 注入(Stored HTML Injection) 触发点:联系表单(POST /contact),无需认证 根本原因: - 用户输入的文本通过 PHP 的 函数处理(仅转换换行为 ,不转义 HTML) - 结果被直接嵌入到 Blade 模板中,使用未转义的 指令(而非 ) - 管理员收到邮件后,在支持 HTML 的客户端(如 Gmail)中打开时,恶意 HTML 被渲染执行 影响范围 受影响版本:BraveCMS-2.0 (PHP) 严重程度:CVSS v3 基础得分 7.1 / 10(高危) 攻击向量:网络远程 权限要求:无(无需认证) 用户交互:需要(管理员必须打开邮件并点击链接/输入凭证) 影响: - 可注入伪造的登录表单、安全警告等 - 导致凭证窃取或重定向至攻击者控制的站点 - 无直接代码执行,但存在社会工程学风险 修复方案 1. 在模板中使用三重花括号 替代 以自动转义 HTML 2. 对输入进行服务端 HTML 净化(如使用过滤库) 3. 避免在邮件中渲染用户可控的 HTML 内容 POC 代码 / 利用代码 修复示例代码(ContactController.php)