目標達成 すべての支援者に感謝 — 100%達成しました!

目標: 1000 CNY · 調達済み: 1000 CNY

100.0%

CVE-2021-35042 — 神龙十问 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注入是严重漏洞。 - **紧急**:建议立即升级框架或实施临时缓解措施,防止数据泄露。