# 漏洞总结 ## 漏洞概述 **标题**: Fix IDOR in link management endpoints #975 **类型**: 越权访问 (IDOR - Insecure Direct Object Reference) **状态**: Open (待修复) **报告者**: az10b **时间**: 3 weeks ago ## 影响范围 - 三个链接管理端点接受用户提供的链接ID,但未验证已认证用户是否拥有该链接 - 允许任何注册用户修改其他用户的链接 - 受影响端点: - `POST /studio/edit-link` (saveLink) - `POST /studio/sort-link` (sortLinks) - `GET /clearIcon/{id}` ## 修复方案 1. **saveLink**: 添加所有权检查 - 如果链接属于其他用户则中止并返回403 2. **sortLinks**: 在where子句中添加`user_id`,使更新仅影响认证用户的链接 3. **clearIcon**: 为路由添加`link-id`中间件 ## POC代码 ```javascript fetch('/studio/edit-link', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').content }, body: new URLSearchParams({ linkId: '+USER_B_LINK_ID+', link: 'https://evil-site.com', title: 'Modified', type: 'link', button: 'custom_website' }) }).then(r => console.log('Status:', r.status)) ``` **预期结果**: 修复前返回403 Forbidden,修复后链接被覆盖