Skip to content

Diário de Bordo – Júlio César Costa

Disciplina: Gerência de Configuração e Evolução de Software

Equipe: OWASP Red Team

Comunidade/Projeto de Software Livre: Pencil Labs / EJ-Application


Sprint 2 - 23-09-2025 - 07-10-2025

Resumo da Sprint

Ataques de pentest com foco em SQL Injection em ambiente local usando Docker, Kali Linux, SQLMap e BurpSuite.

Atividades Realizadas

Data Atividade Tipo (Código/Doc/Discussão/Outro) Link/Referência Status
25/09 Estudo sobre a ferramenta SQLMap Estudo Documentação Concluído
27/09 Estudo sobre a ferramenta BurpSuite Outro Documentação Concluído
04/09 Pentest usando SQLMap na aplicação rodando localmente Outro - Concluído

Sistema Usado

Foi usado o sistema Kali Linux, muito usado para testes de penetração derivado do Debian com várias ferramentas pré-instaladas, inclusive as que usei para os testes de SQL Injection.

Ferramentas

SQLMap

Esta ferramenta foi essencial para a verificação massiva de scripts SQL incluindo muitas opções avançadas, para utiliza-la é necessário passar como argumento a URL da requisição GET ou POST, opcionalmente é possível informar cookies, especificar níveis de testes e nível de risco, como este é um teste local e não estou preocupado com detecção foram testados os maiores níveis --level=5 --risk=3.

BurpSuite Community Edition

Esta é uma ferramenta closed-source muito utilizada para auditoria e testes de penetração possuindo versões pagas e uma versão free, foi utilizada de forma bastante básica apenas para navegar o site como um usuário e obter as requisições GET e POST para serem usadas no SQLMap.

Passo a Passo

Obtenção das Requisições GET e POST

Foi utilizado o BurpSuite na aba Proxy/Intercept, clicando na opção de abrir Browser, que irá abrir um browser Chromium normal, a partir dele entrei na conta fake de testes como usuário (user@user.com) presente no banco de dados postgres através do comando inv docker-exec 'inv db-fake' e realizei ações comuns do usuário como criar um dashboard, personas, alterar informações do usuário logado, etc.

O BurpSuite manteve um histórico de todas as requisições feitas nesta sessão através da aba Proxy/HTTP History, selecionei todas as requisições desse histórico e salvei em um arquivo xml que será passado como argumento para o SQLMap

Teste SQL Injection

Para o teste foi executado o seguinte comando:

sqlmap -l burg_log.xml --batch --level 5 --risk 3 --dbms postgres

  • -l: Comando especifico para obter alvos através de um arquivo log do BurpSuite ou WebScarab
  • burg_log.xml: Arquivo de log obtido através do Proxy do BurpSuite
  • --batch: Não perguntar por confirmações e selecionar as opções padrões
  • --level 5: Nível máximo de quantidade de testes a serem realizados
  • --risk 3: Nível de risco máximo, com alta chance de ser detectado (não é importante neste caso)
  • --dbms postgres: Informa o SQLMap para usar apenas scripts especificos para postgres, usado na EJ Application, se não informado o SQLMap irá tentar scripts de vários banco de dados diferentes como Oracle, MySQL e outros.

Resultado

Não foram encontrados pontos de falha SQL Injection utilizando SQLMap, apesar de ele ter encontrado alguns falsos positivos:

  • Em localhost/boards/teste/conversations/add/ usando SQL Injection no User-Agent com técnicas boolean blind based
  • Em localhost/boards/teste/conversations usando SQL Injection no Cookie de sessionid com técnicas boolean blind based
Target URL,Place,Parameter,Technique(s),Note(s)
http://10.0.0.5:8000/boards/teste/conversations/,Cookie,sessionid,B,false positive or unexploitable
http://10.0.0.5:8000/boards/teste/conversations/add/,User-Agent,User-Agent,B,false positive or unexploitable

Maiores Dificuldades

Tive dificuldades para conseguir acessar a aplicação rodando em Docker locamente a partir do Kali Linux rodando em uma máquina virtual no VMWare, configurei a rede da máquina para ela estar na mesma rede local que o meu computador host, mas com um diferente IP, e aparentemente por padrão o ambiente de desenvolvimento só pode ser acessado em localhost, para corrigir isso tive que ir no arquivo ej-application/docker/variables.env e alterei a variável de ambiente DJANGO_ALLOWED_HOSTS para adicionar o meu IP local da máquina host onde está rodando o Docker, feito isso consegui acessar o site local através do Kali Linux identificando na URL http://\<IP MAQUINA LOCAL>:8000

Aprendizados

Aprendi pelo menos de uma forma básica como é feito testes de SQL Injection usando SQLMap que não havia utilizado antes, apesar de já ter conhecido, a ferramenta BurpSuite também não havia experiência de uso.

Plano Pessoal para a Próxima Sprint

[ ] Rodar testes mais profundos de SQL Injection e testar falsos positivos manualmente usando BurpSuite