关键信息 漏洞标题 SourceCodester Gym Management System V1.0 /admin/student_action.php - Cross-Site Request Forgery (CSRF) 漏洞类型 Cross-Site Request Forgery (CSRF) 基本信息 目标系统:Gym Management System 源代码链接:Gym Management System: Project in PHP and MySQL Free Source Code 项目下载链接:Download Source 漏洞描述 目标系统易受跨站请求伪造(CSRF)攻击。它不验证敏感请求的来源,也不需要有效的CSRF令牌。这允许攻击者创建恶意网页,在认证用户不知情的情况下触发未经授权的操作,可能危及系统的业务逻辑。 漏洞证明 步骤1:创建CSRF Exploit Page 保存以下代码为 。 步骤2:加载PoC 1. 打开 在任何浏览器中。 2. 该页面将自动向目标系统提交一个请求。 步骤3:观察响应 提交请求后,系统返回执行结果,确认接受强制请求。 测试结果 观察结果 - 请求结果:服务器处理了这个伪造的请求,没有验证来源或要求CSRF令牌。 - 浏览器支持:该漏洞利用在多个浏览器上工作(测试于Chrome、Safari和Edge)。 影响 缺乏验证:服务器显示并清理HTML内容,但未验证来源或要求CSRF令牌。 攻击场景: - 创建一个恶意网页,诱骗用户执行未经授权的操作,如触发搜索请求或删除用户数据。 - 如果涉及敏感操作(如支付或预付款),影响可能更严重。 修复策略 1. 实施CSRF令牌: - 在所有敏感操作中生成随机CSRF令牌。 - 在服务器端验证这些令牌。 2. 验证Referer或Origin: - 检查HTTP头以确保请求来自可信源。 3. 设置Cookie属性: - 配置Cookie使用 和 属性防止跨站脚本攻击。 - 4. 限制敏感操作: - 对于高风险操作(如账户更改),实施额外的验证步骤,如多因素身份验证或显式用户确认。 参考资料 OWASP CSRF Prevention Cheat Sheet SameSite Cookie Attributes