AVideo 跨站请求伪造 (CSRF) 漏洞总结 漏洞概述 标题: AVideo: Missing CSRF Protection on State-Changing JSON Endpoints Enables Forced Comment Creation, Vote Manipulation, and Category Asset Deletion CVE ID: CVE-2024-40928 严重程度: Moderate (5.4 / 10) 受影响版本: <= 29.0 漏洞类型: 跨站请求伪造 (CSRF) 核心问题: AVideo 的多个 JSON 端点(如点赞、评论、删除资产)在处理状态变更请求时,缺乏 CSRF 保护(如 Token 验证、Origin 检查或 Referer 检查)。攻击者可以通过诱导已登录用户加载恶意页面,利用用户的 Cookie 发起恶意请求,从而执行点赞/点踩、发布评论或删除分类资产等操作。 影响范围 1. 社交信号完整性: 攻击者可以强制对任何评论进行点赞或点踩,操纵视频的社会信号。 2. 身份滥用: 攻击者可以强制任何登录用户发布评论,包括钓鱼链接、恶意内容或冒充他人。 3. 数据丢失: 拥有 权限的管理员,其分类下的资产可能被强制删除。 修复方案 1. 调用安全辅助函数: 在所有修改数据的 处理器顶部调用 。 2. 限制 HTTP 方法: 对于状态变更操作,要求使用 或 方法,禁止使用 进行数据修改。 3. 验证 CSRF Token: 在所有修改端点验证每会话 CSRF Token(使用 或 helpers)。 4. 增强 Cookie 安全: 在会话初始化中设置 或 ,阻止跨站导航 GET 请求携带 Cookie。 POC 代码提取 1. 强制点赞/点踩 (comments_like.json.php) 攻击者页面代码: 手动验证代码: 2. 强制发布评论 (commentAddNew.json.php) 攻击者页面代码: 手动验证代码: 3. 强制删除分类资产 (categoryDeleteAssets.json.php) 攻击者页面代码 (枚举多个 ID): 手动验证代码: