sexta-feira, 20 de março de 2026

Capture Flag - Segurança - Command Injection

🚩 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)
  1. Criar Diretório: Abra o terminal e crie uma pasta exclusiva para o desafio:
    mkdir ctf-seguranca-4 && cd ctf-seguranca-4
  2. Salvar Arquivos: Crie os 3 arquivos acima (docker-compose.yml, Dockerfile e index.php) dentro desta pasta com o conteúdo fornecido.
  3. Subir o Ambiente: No terminal, execute o comando:
    docker-compose up -d
  4. 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).

📝 ENVIAR RESPOSTA #04

💡 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