Vulnerabilidades de Injeção

Explore falhas críticas de injeção na web, incluindo Injeção de Comando e Injeção de SQL (SQLi). Aprenda técnicas de exploração manual e automatize o comprometimento de bancos de dados usando a poderosa ferramenta sqlmap.

Cybersecurity EngineerCibersegurançaKali LinuxLinux

💡 Este tutorial foi traduzido do inglês com assistência de IA. Para ver o original, você pode mudar para a versão em inglês

Introdução

Falhas de injeção surgem quando uma aplicação permite que dados controlados pelo usuário alterem o significado de um comando de shell ou consulta ao banco de dados. Este curso torna essa quebra de limite visível com exercícios de injeção de comandos e SQL contra aplicações locais deliberadamente vulneráveis.

Primeiro, você criará payloads manualmente para entender por que separadores, aspas, comentários, expressões booleanas e UNION SELECT alteram o comportamento. Depois, usará sqlmap para automatizar detecção, enumeração do esquema, extração de dados e um fluxo de OS shell antes de concluir um desafio independente de comprometimento de banco.

O que você aprenderá

  • Identificar um ponto de injeção de comandos e confirmar a execução com separadores do Linux.
  • Contornar filtros simples com escape e curingas do shell e criar um arquivo de prova no alvo.
  • Provocar erros SQL e construir um payload booleano que contorne um login vulnerável.
  • Determinar a quantidade e as posições exibidas das colunas com ORDER BY e UNION SELECT.
  • Consultar metadados do esquema SQLite e extrair usuários e senhas preparados pela resposta da aplicação.
  • Usar sqlmap para detectar SQLi, enumerar bancos, despejar uma tabela e tentar um OS shell interativo.
  • Validar independentemente duas entradas SQLi e exportar uma tabela de clientes preparada no desafio final.

Para quem é este curso

Este curso intermediário é voltado a estudantes de segurança web que querem entender a mecânica da injeção antes de depender da automação. É adequado para futuros pentesters, estudantes de segurança de aplicações e desenvolvedores que precisam de exemplos concretos de como comandos inseguros e SQL dinâmico expõem sistemas e dados.

Pré-requisitos: Familiaridade com terminal Linux e curl, requisições HTTP GET/POST e codificação de URL básicas, além de conceitos iniciais de SQL como SELECT, WHERE, colunas e tabelas.

Ambiente de aprendizagem: Um terminal Ubuntu 22.04 com sqlmap e aplicações web locais, isoladas e deliberadamente vulneráveis nas portas 5000, 8080 e 80. Todos os comandos e dados de exemplo extraídos permanecem dentro do ambiente do curso.

Perguntas frequentes

Preciso conhecer SQL avançado antes de começar?

Não. Os laboratórios explicam o contexto da consulta, lógica booleana, comentários, contagem de colunas e a sequência de UNION SELECT. Conhecer o vocabulário básico de SQL facilitará os exercícios intermediários.

Os payloads de injeção são enviados a sistemas reais?

Não. Cada alvo é uma aplicação local configurada intencionalmente para prática. Comandos, credenciais, registros de clientes e tokens são dados preparados do laboratório.

Por que aprender SQLi manual antes do sqlmap?

Os exercícios manuais mostram como a entrada altera a sintaxe e como colunas refletidas expõem dados. Isso ajuda a interpretar as técnicas do sqlmap e definir o escopo da enumeração automática, em vez de tratar a saída como uma caixa-preta.

O curso obtém execução de comandos do sistema operacional?

Sim, dentro dos laboratórios isolados. O exercício de injeção executa comandos Linux selecionados, e o laboratório de sqlmap orienta o fluxo --os-shell contra um alvo PHP preparado. As atividades não ultrapassam o ambiente local.

Professor

labby
Labby
Labby is the LabEx teacher.