8.2 KiB
Web API Pentesting
{% hint style="success" %}
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
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Use Trickest para construir e automatizar fluxos de trabalho facilmente, impulsionados pelas ferramentas comunitárias mais avançadas do mundo.
Obtenha Acesso Hoje:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=web-api-pentesting" %}
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
- Serviços Web SOAP/XML: 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. - APIs REST (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 de Prática
- 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.
- Escalação 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, tente poluição de parâmetros e caracteres curinga para testes mais amplos.
- Teste de Versão: 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.
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 ajudar 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, o 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
Use Trickest para construir e automatizar fluxos de trabalho facilmente com as ferramentas da comunidade mais avançadas do mundo.
Acesse hoje:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=web-api-pentesting" %}
{% hint style="success" %}
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
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para os repositórios do HackTricks e HackTricks Cloud.