Ícone do Lab

YAML Bomb

💣 Você consegue detonar uma bomba YAML para comprometer o sistema de configuração?

Desafio Atualizado em 22 jun. 2026 Solução (Pro)
YAML Deserialization PyYAML Exploitation Configuration Injection Python Security Unsafe Deserialization Remote Code Execution File Processing Security

Este sistema corporativo de gerenciamento de configuração processa arquivos YAML para configurações de aplicação, mas uma falha de implementação perigosa cria uma tempestade perfeita para exploração. 💣 Ataques de desserialização YAML são cada vez mais comuns em aplicações modernas, especialmente aquelas que usam abordagens de configuração como código. Muitos desenvolvedores não percebem que YAML pode executar código Python arbitrário durante a análise, tornando-o um vetor de ataque poderoso para comprometimento de sistemas! 🎯

1
Flags
50
XP
63%
Taxa de Sucesso

As vulnerabilidades de desserialização YAML representam uma classe crítica de falhas de segurança em aplicações que analisam arquivos de configuração YAML. Quando aplicações usam funções inseguras de carregamento YAML - particularmente yaml.load() do Python sem especificar um loader seguro - os atacantes podem incorporar código executável em documentos YAML que roda durante o processo de análise. Esta vulnerabilidade é cada vez mais relevante à medida que as organizações adotam práticas de configuração como código e o YAML se torna o formato dominante para configuração de aplicações, definições de infraestrutura e pipelines CI/CD.

Compreendendo os riscos da desserialização YAML

YAML (YAML Ain't Markup Language) é um formato de serialização de dados legível por humanos amplamente usado em ferramentas DevOps como Kubernetes, Docker Compose, Ansible e GitHub Actions. A especificação YAML inclui um recurso poderoso mas perigoso: a capacidade de representar objetos arbitrários de linguagens de programação usando tags de tipo. Na biblioteca PyYAML do Python, a função yaml.load() com o Loader padrão pode instanciar qualquer objeto Python, incluindo aqueles que executam comandos durante a construção.

Um payload YAML malicioso pode usar construtores de tipo específicos do Python para executar comandos arbitrários quando o arquivo YAML é analisado. Isso significa que qualquer aplicação que aceite entrada YAML de fontes não confiáveis - portais de upload de configuração, endpoints de API, sistemas CI/CD ou processadores de arquivos - pode ser explorada para execução remota de código se usar desserialização insegura.

Impacto no mundo real

Vulnerabilidades de desserialização YAML afetaram grandes plataformas e ferramentas. Incidentes notáveis incluem vulnerabilidades no Ruby on Rails (CVE-2013-0156), SnakeYAML para Java, e numerosas aplicações Python usando PyYAML. O impacto é particularmente severo em ambientes DevOps onde arquivos YAML frequentemente rodam com privilégios elevados para gerenciamento de infraestrutura. Um arquivo de configuração comprometido pode levar à tomada de controle completa da infraestrutura.

Processamento YAML seguro

A correção para aplicações Python é simples: sempre usar yaml.safe_load() em vez de yaml.load(). O loader seguro só permite tipos YAML básicos (strings, números, listas, dicionários) e recusa construir objetos Python arbitrários. Para aplicações que precisam de suporte a tipos personalizados, usar yaml.load com um SafeLoader explicitamente configurado e construtores registrados fornece uma alternativa controlada. Revisão de código e análise estática devem sinalizar qualquer uso de funções inseguras de carregamento YAML.

O que você vai aprender

  • Compreender como a desserialização YAML pode levar à execução remota de código
  • Aprender a diferença entre carregamento YAML seguro e inseguro em Python
  • Dominar a construção de payloads YAML para explorar desserialização insegura
  • Reconhecer superfícies de ataque de desserialização YAML em DevOps e gerenciamento de configuração
  • Desenvolver habilidades para identificar e remediar desserialização insegura em aplicações Python

Pré-requisitos

Basic Python knowledge Understanding of YAML syntax Familiarity with command-line tools and Linux

Pronto para hackear este lab?

Crie uma conta gratuita e pratique cibersegurança.

Começar - É grátis
Comece Seu Desafio
~1-2 min de configuração
Servidor dedicado
Instância privada
Potência padrão
Novo aqui? Veja o que fazer
1
Clique em "Start Lab" acima Você receberá sua própria máquina com um endereço IP
2
Explore o alvo Abra o IP no seu navegador e procure vulnerabilidades
3
Encontre e envie as flags Flags são textos secretos escondidos no sistema - cole-os abaixo para pontuar

Pronto para hackear este lab?

Crie uma conta gratuita para iniciar seu próprio servidor dedicado, enviar flags e ganhar XP no ranking.

Começar a Hackear Grátis
13.000+ Hackers 100+ Labs & Cursos Grátis
Comece Grátis