Web API Pentesting

HackTricks'i Destekleyin

Trickest kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin. Bugün Erişim Alın:

API Pentesting Metodolojisi Özeti

API'leri pentest etmek, zayıflıkları ortaya çıkarmak için yapılandırılmış bir yaklaşım gerektirir. Bu kılavuz, pratik teknikler ve araçlara vurgu yaparak kapsamlı bir metodolojiyi kapsar.

API Türlerini Anlamak

  • SOAP/XML Web Servisleri: Dokümantasyon için genellikle ?wsdl yollarında bulunan WSDL formatını kullanır. SOAPUI ve WSDLer (Burp Suite Eklentisi) gibi araçlar, istekleri ayrıştırmak ve oluşturmak için önemlidir. Örnek dokümantasyon DNE Online adresinde mevcuttur.

  • REST API'leri (JSON): Dokümantasyon genellikle WADL dosyalarında gelir, ancak Swagger UI gibi araçlar etkileşim için daha kullanıcı dostu bir arayüz sunar. Postman, örnek istekleri oluşturmak ve yönetmek için değerli bir araçtır.

  • GraphQL: API'ler için, API'nizdeki verilerin tam ve anlaşılır bir tanımını sunan bir sorgu dilidir.

Pratik Laboratuvarlar

  • VAmPI: OWASP top 10 API zayıflıklarını kapsayan, uygulamalı pratik için kasıtlı olarak zayıf bir API.

API Pentesting için Etkili İpuçları

  • SOAP/XML Zayıflıkları: XXE zayıflıklarını keşfedin, ancak DTD bildirimleri genellikle kısıtlıdır. XML geçerli kaldığı sürece CDATA etiketleri yük eklemeye izin verebilir.

  • Yetki Yükseltme: Yetkisiz erişim olasılıklarını belirlemek için farklı yetki seviyelerine sahip uç noktaları test edin.

  • CORS Yanlış Yapılandırmaları: Kimlik doğrulama oturumlarından CSRF saldırıları yoluyla potansiyel istismar edilebilirlik için CORS ayarlarını araştırın.

  • Uç Nokta Keşfi: Gizli uç noktaları keşfetmek için API desenlerinden yararlanın. Fuzzer gibi araçlar bu süreci otomatikleştirebilir.

  • Parametre Manipülasyonu: Yetkisiz verilere veya işlevlere erişmek için isteklerde parametre eklemeyi veya değiştirmeyi deneyin.

  • HTTP Yöntemi Testi: Beklenmedik davranışları veya bilgi sızıntılarını ortaya çıkarmak için istek yöntemlerini (GET, POST, PUT, DELETE, PATCH) değiştirin.

  • İçerik Türü Manipülasyonu: Ayrıştırma sorunları veya zayıflıkları test etmek için farklı içerik türleri (x-www-form-urlencoded, application/xml, application/json) arasında geçiş yapın.

  • Gelişmiş Parametre Teknikleri: JSON yüklerinde beklenmedik veri türleri ile test edin veya XXE enjeksiyonları için XML verileri ile oynayın. Ayrıca, daha geniş testler için parametre kirliliği ve joker karakterler deneyin.

  • Sürüm Testi: Eski API sürümleri saldırılara daha duyarlı olabilir. Her zaman birden fazla API sürümünü kontrol edin ve test edin.

API Pentesting için Araçlar ve Kaynaklar

  • kiterunner: API uç noktalarını keşfetmek için mükemmel. Hedef API'lere karşı yolları ve parametreleri taramak ve brute force yapmak için kullanın.

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
  • automatic-api-attack-tool, Astra ve restler-fuzzer gibi ek araçlar, saldırı simülasyonundan fuzzing ve zafiyet taramasına kadar API güvenlik testleri için özel işlevler sunar.

  • Cherrybomb: OAS dosyasına dayalı olarak API'nizi denetleyen bir API güvenlik aracıdır (araç rust ile yazılmıştır).

Öğrenme ve Pratik Kaynakları

  • OWASP API Güvenliği En İyi 10: Yaygın API zafiyetlerini anlamak için temel bir okuma (OWASP Top 10).

  • API Güvenlik Kontrol Listesi: API'leri güvence altına almak için kapsamlı bir kontrol listesi (GitHub link).

  • Logger++ Filtreleri: API zafiyetlerini avlamak için, Logger++ faydalı filtreler sunar (GitHub link).

  • API Uç Noktaları Listesi: Test amaçları için potansiyel API uç noktalarının derlenmiş bir listesi (GitHub gist).

Referanslar

Dünyanın en gelişmiş topluluk araçlarıyla desteklenen iş akışlarını kolayca oluşturmak ve otomatikleştirmek için Trickest kullanın. Bugün Erişim Alın:

HackTricks'i Destekleyin

Last updated