Médio Segurança Web & API +400 XP

Pickle Jar

A DataVault Inc. permite que usuários restaurem configurações de backup enviando arquivos .pkl. O serviço desserializa de forma confiante tudo o que você envia. Você consegue criar um pickle malicioso para obter um shell e escalar para root?

51% resolvem 272 hackers jogaram 2 flags Atualizado em 21 de out. de 2026 First blood Malekith
PythonPickle DeserializationRCEPrivilege EscalationLinux
Comece Seu Desafio

Inicie sua máquina dedicada para começar a hackear

  1. 1Crie uma conta grátis e clique em "Iniciar Lab"Você receberá sua própria máquina com um endereço IP
  2. 2Explore o alvoAbra o IP no seu navegador e procure vulnerabilidades
  3. 3Encontre e envie as flagsFlags são textos secretos escondidos no sistema - cole-os abaixo para pontuar
  • ~1-2 min de configuração
  • Instância privada
  • 30 min por sessão. Reinicie de graça, quantas vezes quiser.

A desserialização insegura é uma vulnerabilidade crítica de aplicações web que ocorre quando uma aplicação desserializa dados não confiáveis sem validação adequada. Em Python, o módulo pickle é uma biblioteca de serialização comum que é inerentemente insegura quando usada com dados fornecidos pelo usuário. A própria documentação do Python alerta explicitamente que o pickle nunca deve ser usado para desserializar dados de fontes não confiáveis, porém esse alerta é frequentemente ignorado em aplicações em produção, criando vulnerabilidades de segurança graves.

Entendendo a desserialização Python Pickle

O módulo pickle do Python serializa objetos em um fluxo de bytes e pode reconstruí-los posteriormente através da desserialização. O perigo está na capacidade do pickle de executar código arbitrário durante o processo de desserialização. Ao implementar o método __reduce__ em uma classe personalizada, um atacante pode definir funções e argumentos arbitrários que serão chamados quando o objeto for desserializado. Isso significa que um payload pickle malicioso pode executar comandos do sistema, estabelecer reverse shells ou realizar qualquer operação disponível para o usuário da aplicação - tornando-o um caminho direto para Execução Remota de Código (RCE).

Criando payloads Pickle maliciosos

Criar um exploit para uma vulnerabilidade de desserialização pickle envolve escrever uma classe Python com um método __reduce__ que retorna uma tupla contendo um callable (como os.system ou subprocess.Popen) e seus argumentos. Quando a aplicação desserializa esse objeto, o comando especificado é executado no servidor. Esta técnica é simples de implementar, exigindo apenas habilidades básicas de script Python, mas produz o impacto mais severo - execução de código arbitrário. A simplicidade do exploit torna a desserialização insegura particularmente perigosa.

Do RCE à comprometimento total do sistema

Após obter execução de código através da desserialização pickle, os atacantes tipicamente estabelecem um ponto de apoio mais estável através de reverse shells ou acesso SSH. A partir daí, técnicas de escalação de privilégios Linux - como explorar regras sudo mal configuradas, binários SUID ou arquivos de sistema graváveis - podem elevar o acesso até root. Entender a cadeia de ataque completa desde a desserialização insegura passando pela execução de código até a escalação de privilégios é essencial para profissionais de segurança que avaliam aplicações e serviços web baseados em Python.

O que você vai aprender

  • Compreender as vulnerabilidades de desserialização Python pickle e sua gravidade
  • Aprender a criar payloads pickle maliciosos usando o método __reduce__
  • Praticar a obtenção de Execução Remota de Código através de desserialização insegura
  • Explorar a enumeração de privilégios sudo em sistemas Linux
  • Desenvolver habilidades de escalação desde RCE de aplicação web até acesso root
  • Reconhecer alternativas seguras ao pickle para manipulação de dados serializados

Pré-requisitos

Scripting básico em Python Fundamentos de aplicações web Linha de comando Linux Compreensão de conceitos de serialização