Web API Pentesting

Reading time: 4 minutes

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Resumo da Metodologia de Pentesting de API

Pentesting de APIs envolve uma abordagem estruturada para descobrir vulnerabilidades. Este guia encapsula uma metodologia abrangente, enfatizando técnicas e ferramentas práticas.

Entendendo os Tipos de API

  • SOAP/XML Web Services: Utilizam o formato WSDL para documentação, geralmente encontrado em caminhos ?wsdl. Ferramentas como SOAPUI e WSDLer (Extensão do Burp Suite) são instrumentais para analisar e gerar requisições. A documentação de exemplo está acessível em DNE Online.
  • REST APIs (JSON): A documentação geralmente vem em arquivos WADL, mas ferramentas como Swagger UI fornecem uma interface mais amigável para interação. Postman é uma ferramenta valiosa para criar e gerenciar requisições de exemplo.
  • GraphQL: Uma linguagem de consulta para APIs que oferece uma descrição completa e compreensível dos dados na sua API.

Laboratórios Práticos

  • VAmPI: Uma API deliberadamente vulnerável para prática prática, cobrindo as 10 principais vulnerabilidades de API da OWASP.

Truques Eficazes para Pentesting de API

  • Vulnerabilidades SOAP/XML: Explore vulnerabilidades XXE, embora declarações DTD sejam frequentemente restritas. Tags CDATA podem permitir a inserção de payloads se o XML permanecer válido.
  • Escalonamento de Privilégios: Teste endpoints com diferentes níveis de privilégio para identificar possibilidades de acesso não autorizado.
  • Configurações CORS Incorretas: Investigue as configurações CORS para potencial explorabilidade através de ataques CSRF a partir de sessões autenticadas.
  • Descoberta de Endpoints: Aproveite padrões de API para descobrir endpoints ocultos. Ferramentas como fuzzers podem automatizar esse processo.
  • Manipulação de Parâmetros: Experimente adicionar ou substituir parâmetros em requisições para acessar dados ou funcionalidades não autorizadas.
  • Teste de Métodos HTTP: Varie os métodos de requisição (GET, POST, PUT, DELETE, PATCH) para descobrir comportamentos inesperados ou divulgações de informações.
  • Manipulação de Content-Type: Alterne entre diferentes tipos de conteúdo (x-www-form-urlencoded, application/xml, application/json) para testar problemas de análise ou vulnerabilidades.
  • Técnicas Avançadas de Parâmetros: Teste com tipos de dados inesperados em payloads JSON ou brinque com dados XML para injeções XXE. Além disso, experimente poluição de parâmetros e caracteres curinga para testes mais amplos.
  • Teste de Versões: Versões mais antigas de APIs podem ser mais suscetíveis a ataques. Sempre verifique e teste contra múltiplas versões de API.

Ferramentas e Recursos para Pentesting de API

  • kiterunner: Excelente para descobrir endpoints de API. Use-o para escanear e forçar caminhos e parâmetros contra APIs-alvo.
bash
kr scan https://domain.com/api/ -w routes-large.kite -x 20
kr scan https://domain.com/api/ -A=apiroutes-220828 -x 20
kr brute https://domain.com/api/ -A=raft-large-words -x 20 -d=0
kr brute https://domain.com/api/ -w /tmp/lang-english.txt -x 20 -d=0
  • https://github.com/BishopFox/sj: sj é uma ferramenta de linha de comando projetada para auxiliar na auditoria de arquivos de definição Swagger/OpenAPI expostos verificando os endpoints da API associados para autenticação fraca. Também fornece modelos de comando para testes manuais de vulnerabilidade.
  • Ferramentas adicionais como automatic-api-attack-tool, Astra e restler-fuzzer oferecem funcionalidades personalizadas para testes de segurança de API, variando de simulação de ataque a fuzzing e varredura de vulnerabilidades.
  • Cherrybomb: É uma ferramenta de segurança de API que audita sua API com base em um arquivo OAS (a ferramenta é escrita em rust).

Recursos de Aprendizado e Prática

  • OWASP API Security Top 10: Leitura essencial para entender vulnerabilidades comuns de API (OWASP Top 10).
  • API Security Checklist: Uma lista de verificação abrangente para proteger APIs (GitHub link).
  • Logger++ Filters: Para caçar vulnerabilidades de API, Logger++ oferece filtros úteis (GitHub link).
  • API Endpoints List: Uma lista curada de potenciais endpoints de API para fins de teste (GitHub gist).

Referências

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks