🚩 Desafio #04: Capture The Flag - Command Injection
Módulo: Segurança de Aplicações Web
🎯 Missão: Explorar a falha de injeção de comandos no servidor para ler a Flag em
/var/secret/flag.txt.
🚀 Laboratório:
📦 1. docker-compose.yml
services:
web-ctf:
build: .
ports:
- "8080:80"
restart: always
container_name: ctf_seguranca_4
📄 2. Dockerfile
FROM php:8.2-apache
RUN apt-get update && apt-get install -y iputils-ping && rm -rf /var/lib/apt/lists/*
COPY index.php /var/www/html/
RUN mkdir -p /var/secret && \
echo "CTF{COMMAND_INJECTION_SUCCESS_2026}" > /var/secret/flag.txt
RUN chown -R www-data:www-data /var/www/html
🌐 3. index.php (Aplicação)
<?php
// Aplicação vulnerável para fins educacionais
?>
<!DOCTYPE html>
<html>
<head>
<title>Rede Admin</title>
</head>
<body>
<h2>Diagnóstico de Rede</h2>
<form method="GET">
<input type="text" name="host" placeholder="IP">
<button type="submit">Ping</button>
</form>
<?php
if (isset($_GET['host'])) {
$host = $_GET['host'];
// Execução direta no shell
echo "<pre>" . shell_exec("ping -c 2 " . $host) . "</pre>";
}
?>
</body>
</html>
🛠️ 4. Instruções de Execução (Passo a Passo)
-
Criar Diretório: Abra o terminal e crie uma pasta exclusiva para o desafio:
mkdir ctf-seguranca-4 && cd ctf-seguranca-4 -
Salvar Arquivos: Crie os 3 arquivos acima (
docker-compose.yml,Dockerfileeindex.php) dentro desta pasta com o conteúdo fornecido. -
Subir o Ambiente: No terminal, execute o comando:
docker-compose up -d - Acessar o Desafio: Abra seu navegador e acesse: http://localhost:8080
Atenção: Certifique-se de que a porta 8080 não está sendo usada por outro serviço (como o Jenkins ou outro container).
💡 Dica do Prof. Carlos: Se o comando docker-compose up -d apresentar erro de permissão, lembre-se de usar o sudo ou verificar se o seu usuário está no grupo docker. Segurança começa na configuração do ambiente!
Nenhum comentário:
Postar um comentário