# 漏洞总结:Pharmacy Sales and Inventory System V1.0 SQL注入 ## 漏洞概述 * **受影响产品**:Pharmacy Sales and Inventory System V1.0 * **漏洞类型**:SQL注入 (SQL injection) * **漏洞文件**:`/ajax.php?action=save_expired` * **漏洞参数**:POST参数 `id` * **漏洞成因**:代码未对用户输入的 `id` 参数进行适当的清理或验证,直接将其拼接到SQL查询中。 * **利用条件**:无需登录或授权即可利用。 ## 影响范围 攻击者可利用此漏洞实现未授权的数据库访问、敏感数据泄露、数据篡改、系统控制中断,对系统安全和业务连续性构成严重威胁。 ## 修复方案 1. **使用预处理语句和参数绑定**:将SQL代码与用户输入数据分离,防止SQL注入。 2. **输入验证和过滤**:严格验证和过滤用户输入数据,确保其符合预期格式。 3. **最小化数据库用户权限**:确保数据库连接账户拥有执行任务所需的最小权限,避免使用高权限账户(如root或admin)进行日常操作。 4. **定期安全审计**:定期进行代码和系统安全审计,及时识别并修复潜在的安全漏洞。 ## POC代码 ```python Parameter: id (POST) Type: boolean-based blind Title: Boolean-based blind - Parameter replace (original value) Payload: id=(SELECT (CASE WHEN (4784=4784) THEN 5 ELSE (SELECT 7970 UNION SELECT 3350) END)) ```