在线医院管理系统 patient.php SQL注入漏洞 漏洞概述 漏洞类型:SQL注入 漏洞文件: 漏洞描述:在 文件中,存在一个不受限制的SQL注入漏洞。可控参数是 ,该参数直接拼接到 和 SQL查询中,没有任何过滤或参数化查询保护。漏洞可由任何未经身份验证的远程攻击者触发,因为文件在处理 参数之前没有任何身份验证检查。恶意攻击者可以利用此漏洞查看、修改或删除所有患者记录,绕过身份验证或提取敏感数据库信息(包括管理员凭据)。 影响范围 提取所有患者记录而无需身份验证 通过利用 注入修改或删除所有患者数据 通过转储 表中的 检索管理员凭据 通过修改存储在数据库中的登录凭据绕过身份验证 通过修改数据库中的登录凭据绕过身份验证 修复方案 1. 使用预处理语句:对于所有涉及用户输入的查询,使用预处理语句代替直接字符串拼接。 2. 添加身份验证和授权检查:在执行任何敏感操作之前,添加身份验证和授权检查。 3. 验证资源所有权:确保用户有权访问请求的记录。 4. 更改HTTP方法:敏感的状态更改操作应使用 请求而不是 。在这种情况下,触发数据库查找和更新的 参数应通过 提交,而不是暴露在URL中。 5. 禁用详细错误报告:在生产环境中禁用详细错误报告,以防止信息泄露,帮助攻击者。 POC代码 1. Union-Based Data Extraction 步骤1:识别列数 步骤2:提取数据库名称和用户 步骤3:转储所有表名 步骤4:检索管理员凭据 2. Mass Data Tampering via UPDATE Injection URL 3. Time-Based Blind SQL Injection URL 4. Automated Exploitation with sqlmap 命令