Handbook
  • Introdução
  • Empresa
    • Bem Vindo a Vantico!
    • Valores da Vantico
    • Trabalho Remoto
    • Branding
      • Cores
      • Tipografia
      • Ilustrações
      • Tom de voz & Descrições
    • Políticas
    • Soluções utilizadas pela Vantico
  • Serviços
    • Inteligência de ameaças
    • Revisão de código seguro
    • Pentest WEB
    • Pentest API
    • Pentest Mobile
    • Pentest rede interna
    • Pentest rede externa
    • Revisão de configuração cloud
    • Pentest Azure Active Directory
    • Pentest Desktop
    • Pentest IA/LLM
    • Red Team e Emulação de Adversário
  • Parceiros
    • Visão geral sobre Pentest
    • Tipos de Pentest
    • Relatório do Pentest
    • Teste de correção (Re-test)
    • Pentest para PCI DSS
    • Perguntas frequentes
  • Pentester
    • Markdown
    • Como reportar uma vulnerabilidade
  • Plataforma
    • Começe aqui
      • Acessando a Plataforma
      • Preparação para o Pentest
      • Selecione o Tipo de Pentest
      • Definir os Requisitos do Pentest
        • Alvo
        • Teste suas Crendenciais
        • Instruções para cada Pentest
      • Especifique os Detalhes do Pentest
        • Planejamento e Escopo do Pentest
        • Revisar e Enviar o Pentest
        • Expectativas do Pentest
        • Glossário
    • Changelog
    • Pentests
      • Processos do Pentest
        • Estados de Pentest
        • Lista de verificação de cobertura
      • Descobertas
        • Corrigindo Descobertas
        • Estados das Descobertas
        • Níveis de gravidade
      • Relatórios
        • Conteúdo de um relatório Pentest
        • Customize seu Relatório de Pentest
        • Relatórios de Pentest de marca conjunta
    • Colaboração
      • Colabore em Pentests
      • Gerenciar colaboradores do Pentest
      • Funções e permissões do usuário
      • Notificações
    • Domínios
    • DAST Scanner
      • Alvos
      • Autenticação do Alvo
    • Organização
      • Gerenciar usuários
    • Conta Vantico
      • Solucionar problemas de Login
      • Configurações da Conta
      • Melhores Práticas com a Senha
  • Metodologias
    • API
      • GraphQL
      • REST
    • Cloud
      • AWS
      • BucketLoot
      • Referências
    • Mobile
      • iOS
      • Android
      • Referências
    • Kubernetes
    • Rede Externa
      • Enumeração de Subdomínios
      • Low Hanging Fruits
      • Credenciais de Serviços padrão
    • Rede Interna
      • PowerShell
      • Movimentação Lateral
      • Pós Exploração
      • Escalação de Privilégios
      • Low Hanging Fruits
      • Credenciais de Serviços padrão
      • Referências
    • Aplicações Web
      • Checklist
      • Low Hanging Fruits
      • Gerando Valor
      • Técnicas
      • Automatizando o Scan por Secrets
      • Chaves API
      • Referências
    • Spear Phishing
    • Ferramentas
    • Gerando wordlists efetivas
    • Guia de engajamento de um pentest
Powered by GitBook
On this page

Was this helpful?

  1. Metodologias
  2. API

GraphQL

PreviousAPINextREST

Last updated 2 months ago

Was this helpful?

É uma linguagem de consulta e uma estrutura de execução para APIs que permite que os clientes solicitem apenas os dados específicos de que precisam, em vez de receberem uma resposta completa com todos os dados disponíveis. Foi desenvolvido pelo Facebook em 2012 e lançado publicamente em 2015.A principal diferença entre GraphQL e as abordagens tradicionais de API, como REST (Representational State Transfer), é que o GraphQL coloca o controle nas mãos dos clientes. Em vez de o servidor determinar quais dados são retornados em uma resposta, o cliente especifica exatamente quais campos e relacionamentos ele deseja que a API retorne. Isso torna as consultas mais eficientes e flexíveis, pois os clientes podem buscar apenas o que precisam, evitando a sobrecarga de dados.Principais características do GraphQL:

  • Consulta única: Em uma única consulta GraphQL, você pode solicitar dados de várias entidades e seus relacionamentos, em vez de fazer várias chamadas de API para obter dados separados.

  • Tipo de sistema: O GraphQL define um sistema de tipos para os dados que podem ser consultados. Isso ajuda a documentar a API de forma clara e permite a validação de consulta em tempo de execução.

  • Introspecção: O GraphQL permite que você consulte o esquema da API para descobrir quais tipos de dados estão disponíveis, quais consultas podem ser feitas e quais campos estão disponíveis em cada tipo.

  • Mutação: Além de consultas, o GraphQL suporta mutações, que permitem que os clientes modifiquem dados no servidor, como criar, atualizar ou excluir registros.

  • Subscrições: O GraphQL também suporta subscrições em tempo real, permitindo que os clientes recebam atualizações quando os dados mudam no servidor.

No geral, o GraphQL é uma tecnologia poderosa para o desenvolvimento de APIs flexíveis e eficientes, especialmente em situações onde os requisitos de consulta dos clientes podem variar amplamente ou quando se deseja reduzir a sobrecarga de dados nas respostas da API.

Dica

Como apresentado na Introdução, o GraphQL possuí uma funcionalidade de Instropecção: permite que você consulte o esquema da API para descobrir quais tipos de dados estão disponíveis, quais consultas podem ser feitas e quais campos estão disponíveis em cada tipo. No entanto, essa funcionalidade pode ser desabilitada. Caso isso aconteça existe uma alternativa que é usar ferramentas como a clairvoyance (), basicamente ela usa uma wordlist para tentar fazer queries e observa as mensagens de retorno, que possuí os nomes dos campos corretos e a partir disso vai montando uma base de campos conhecimentos e também tentando inferir novos.

Ferramentas de apoio

Um equivalência ao Postman/Insominia de API REST é o Altair (), ele fica a frente dessas ferramentas e até mesmo de algumas extensões do Burp Suite pois tem funções de auto complete e geração de documentação automática.Se você precisa de um apoio visual para entender melhor as relações de objetos e atributos em uma API GraphQL, o Voayger é uma ótima ferramenta para isso:

https://github.com/nikitastupin/clairvoyance
https://altairgraphql.dev
https://apis.guru/graphql-voyager/