漏洞总结:LinkWarden SSRF 漏洞 漏洞概述 漏洞类型:服务端请求伪造 (SSRF) 漏洞组件: 函数 漏洞描述:该函数在创建链接时仅检查 URL 是否以 或 开头,缺乏对内部 IP 地址的过滤。攻击者可利用此漏洞访问内部 Docker 服务、云元数据端点(如 AWS、GCP、Azure)及其他内部网络资源。 CVSS 评分:9.1 (Critical) 影响范围 受影响版本:< 2.13.0 受影响环境:部署在 AWS EC2 等云环境且配置了 IAM 角色的实例。 潜在后果: 通过访问云元数据端点窃取 IAM 角色凭证。 利用窃取的凭证访问云资源并执行特权操作。 访问内部网络资源(如 Elasticsearch)。 修复方案 主要修复:在 函数中实施严格的 URL 验证。 具体建议: 解析传入的 URL 并阻止访问内部 IP 范围(如 , , , )。 阻止访问 localhost 及云元数据端点(如 )。 仅允许请求外部域名。 在 worker 组件处理链接前应用相同的 URL 验证逻辑。 POC 代码提取 1. 漏洞代码片段 ( ) 2. 利用步骤 (PoC) 1. 在 AWS EC2 实例上部署 LinkWarden 并附加 IAM 角色。 2. 认证并导航至链接创建界面。 3. 创建新链接,URL 字段填入 AWS 元数据端点: (返回角色名) 4. 向 发送 POST 请求,使用上述 URL。 5. 创建另一个链接,URL 字段填入具体凭证端点: (返回实际凭证) 6. 向 发送 POST 请求,使用上述凭证 URL。 7. 点击链接访问内容(PDF/图片/可读格式)。 8. 使用 API 端点获取内容: 9. 观察到响应中包含 AWS IAM 角色凭证和元数据。