关键信息总结 漏洞概述 漏洞类型: 时间盲注SQL注入 影响系统: Patient Record Management System (PRMS) 登录门户 发现者: Subhash Poudel 日期: 2020年6月29日 源码链接: GitHub仓库 目标URL: http://localhost/PRMS/php/login.php 技术栈: Apache 2.4.38, PHP 8.0.30, MySQL 5.0.12 漏洞细节 受影响参数: username HTTP方法: POST 端点URL: http://localhost/PRMS/php/login.php 自动化利用 (SQLMap) 注入类型: 时间盲注 数据库: MySQL (MariaDB) 确认注入: 已确认 有效载荷示例: admin' AND (SELECT 6666 FROM (SELECT(SLEEP(5)))yqSN) AND 'mle='='mle&password=admin 手动利用步骤 1. 拦截请求: 使用Burp Suite捕获登录请求。 2. 修改有效载荷: 在Burp Repeater中更改payload。 3. 发送并观察: 发送修改后的请求,观察响应。 安全风险 未授权访问: 绕过认证以任何用户身份登录,包括管理员。 数据泄露: 泄露敏感记录、密码或医疗记录。 系统妥协: 修改或删除记录,注入恶意代码,甚至获得RCE(远程代码执行)。 法规不合规: 可能违反HIPAA、GDPR或其他数据保护法律。 缓解与建议 输入验证: 使用预编译查询或准备好的语句。 WAF: 部署Web应用防火墙阻止SQL注入模式。 最小权限: 限制数据库用户权限,避免使用root账户。 日志记录: 记录所有失败的登录尝试和可疑的payload。 安全错误: 禁用详细的错误消息,防止帮助攻击者。 代码审查: 进行手动代码审查和静态分析,确保用户输入处理正确。 结论 此SQL注入漏洞高度可利用且极其危险,可能导致数据库完全泄露。未经认证的立即修复是强烈建议的。