存储型 XSS 漏洞:未转义的许可证归属字段 漏洞概述 标题:Stored XSS via Unescaped License Attribution Fields 严重性:高危 (CVSS 3.1: 7.6) CVE ID:CVE-2024-40353 受影响版本: = 2.5 描述: 中的 属性通过直接拼接用户可控字段(如 )构建 HTML 字符串,且未进行转义。该 HTML 在 视图模板中使用 Django 的 过滤器渲染,导致存储型 XSS。攻击者(无需认证)可创建包含恶意 JavaScript 的 值,当任何用户(包括未认证访客)查看该成分详情时,脚本将执行。 影响范围 攻击者权限:低权限攻击者(任何已认证的非临时用户)。 漏洞类型:存储型 XSS(持久化到数据库)。 触发条件:在公共页面上触发(无需认证即可查看)。 潜在危害: 窃取会话 Cookie,获取完全控制权。 劫持会话,修改其他用户密码或邮箱。 窃取数据:访问其他用户的锻炼计划、营养数据和个人测量数据。 蠕虫式传播:恶意成分可注入更多恶意成分。 钓鱼:重定向用户到伪造登录页面。 修复方案 替换 属性,使用 Django 的 对 HTML 进行正确转义。 修复代码: POC 代码 1. 通过 Web 表单提交(步骤 2): 2. 通过 API 路径(Alternative API Path):**