# 漏洞总结:sourcecodedoster Pharmacy Sales and Inventory System V1.0 SQL注入 ## 漏洞概述 * **产品名称**: Pharmacy Sales and Inventory System V1.0 * **漏洞类型**: SQL Injection (SQL注入) * **受影响文件**: `/ajax.php?action=delete_expired` * **漏洞参数**: `id` (POST参数) * **漏洞成因**: 攻击者可以通过参数 `id` 注入恶意代码,且代码未进行适当的清理或验证。 * **利用条件**: 无需登录或授权即可利用。 ## 影响范围 * 攻击者可利用此漏洞实现未授权的数据库访问。 * 可能导致敏感数据泄露、数据篡改、系统控制全面受损以及服务中断。 * 对系统安全和业务连续性构成严重威胁。 ## 修复方案 1. **使用预处理语句和参数绑定**: 预处理语句可以将SQL代码与用户输入数据分离,防止用户输入被解释为SQL代码。 2. **输入验证和过滤**: 严格验证和过滤用户输入数据,确保其符合预期格式。 3. **最小化数据库用户权限**: 确保用于连接数据库的账户拥有执行任务所需的最小权限,避免使用具有高级权限(如root或admin)的账户进行日常操作。 4. **定期安全审计**: 定期进行代码和系统安全审计,以及时识别和修复潜在的安全漏洞。 ## POC代码 ```text 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)) ```