CVE-2021-35042
— 神龙十问 AI 深度分析摘要
本页是神龙十问 AI 深度分析的
摘要版。完整版(更长回答、追问、相关漏洞)需
登录查看 →
Q1这个漏洞是什么?(本质+后果)
🚨 **本质**:Django框架中 `QuerySet.order_by()` 存在SQL注入漏洞。
💥 **后果**:攻击者可绕过列引用验证,执行任意SQL语句,导致数据泄露或篡改。
Q2根本原因?(CWE/缺陷点)
🔍 **缺陷点**:`QuerySet.order_by()` 未充分过滤用户输入。
📉 **原因**:在标记为弃用的路径中,预期的列引用验证被绕过,导致恶意SQL注入。
Q3影响谁?(版本/组件)
📦 **受影响组件**:Django Web应用框架。
📅 **具体版本**:
- 3.1.x 至 3.1.13
- 3.2.x 至 3.2.5
Q4黑客能干啥?(权限/数据)
🕵️ **黑客能力**:
- **数据窃取**:读取数据库敏感信息。
- **权限提升**:可能通过SQL注入获取更高权限。
- **数据破坏**:修改或删除数据库记录。
Q5利用门槛高吗?(认证/配置)
🚪 **利用门槛**:
- **无需认证**:通常通过URL参数(如 `?order_by=`)即可触发。
- **配置简单**:只要应用使用了受影响的 `order_by` 且未修复,即可利用。
Q6有现成Exp吗?(PoC/在野利用)
💻 **现成Exp**:
- **有PoC**:GitHub上存在多个复现仓库(如 YouGina, mrlihd, r4vi 等)。
- **利用方式**:构造恶意 `order_by` 参数即可触发。
Q7怎么自查?(特征/扫描)
🔎 **自查方法**:
- **代码扫描**:检查代码中是否直接使用用户输入作为 `order_by()` 参数。
- **特征匹配**:查找 URL 参数中直接传递字段名或SQL片段的情况。
Q8官方修了吗?(补丁/缓解)
🛡️ **官方修复**:
- **已发布补丁**:Django官方已发布安全更新。
- **建议升级**:升级至 3.1.14+ 或 3.2.6+ 版本。
Q9没补丁咋办?(临时规避)
⚠️ **临时规避**:
- **输入过滤**:严格白名单校验 `order_by` 参数,仅允许合法字段名。
- **避免动态排序**:尽量使用固定的排序字段,避免直接拼接用户输入。
Q10急不急?(优先级建议)
🔥 **优先级**:
- **高危**:SQL注入是严重漏洞。
- **紧急**:建议立即升级框架或实施临时缓解措施,防止数据泄露。