hacktricks/network-services-pentesting/pentesting-web/web-api-pentesting.md

7.6 KiB
Raw Blame History

Web API Pentesting

AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile!

HackTricks'ı desteklemenin diğer yolları:

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

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

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 teknikleri ve araçları vurgulayan kapsamlı bir metodolojiyi içerir.

API Türlerini Anlama

  • SOAP/XML Web Servisleri: Genellikle ?wsdl yolunda bulunan belgeleme için WSDL formatını kullanın. SOAPUI ve WSDLer (Burp Suite Eklentisi) gibi araçlar, istekleri ayrıştırmak ve oluşturmak için önemlidir. Örnek belgeleme, DNE Online adresinden erişilebilir.
  • REST API'ler (JSON): Belgeleme genellikle WADL dosyalarında gelir, ancak Swagger UI gibi araçlar, daha kullanıcı dostu bir etkileşim arayüzü sağlar. Örnek istekler oluşturmak ve yönetmek için Postman değerli bir araçtır.
  • GraphQL: API'ler için verilerin tam ve anlaşılır bir açıklamasını sunan bir sorgu dili.

Uygulama Laboratuvarları

  • VAmPI: OWASP'in en üst 10 API zayıflıklarını kapsayan, el ile uygulama pratiği için kasti olarak zayıf bir API.

API Pentesting için Etkili Püf Noktaları

  • SOAP/XML Zayıflıkları: Genellikle DTD bildirimleri kısıtlandığından XXE zayıflıklarını keşfedin. XML geçerli kalırsa CDATA etiketleri yük enjeksiyonuna izin verebilir.
  • Yetki Yükseltme: Yetki seviyeleri değişen uç noktaları test ederek yetkisiz erişim olasılıklarını belirleyin.
  • CORS Yanılandırmaları: Yetkilendirilmiş oturumlardan CSRF saldırıları aracılığıyla olası sömürülebilirlik için CORS ayarlarını inceleyin.
  • Uç Nokta Keşfi: Gizli uç noktaları keşfetmek için API kalıplarını kullanın. Fuzzer gibi araçlar bu süreci otomatikleştirebilir.
  • Parametre Oynama: İsteklere parametre ekleyerek veya değiştirerek yetkisiz verilere veya işlevselliklere erişmeyi deneyin.
  • HTTP Yöntemi Testi: Beklenmeyen 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: Farklı içerik türleri arasında geçiş yaparak (x-www-form-urlencoded, application/xml, application/json) ayrıştırma sorunlarını veya zayıflıkları test edin.
  • Gelişmiş Parametre Teknikleri: JSON yüklerinde beklenmeyen veri tipleriyle test yapın veya XXE enjeksiyonları için XML verileriyle oynayın. Ayrıca daha geniş testler için parametre kirliliği ve joker karakterlerini deneyin.
  • Sürüm Testi: Eski API sürümleri daha savunmasız 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 bir araç. Hedef API'ler üzerinde yol ve parametre taraması 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
  • Otomatik-api-saldiri-araci, Astra ve restler-fuzzer gibi ek araçlar, saldırı simülasyonundan fuzzing'e ve zafiyet taramasına kadar API güvenlik testleri için özelleştirilmiş işlevsellikler sunar.
  • Cherrybomb: API'nizi bir OAS dosyasına dayanarak denetleyen bir API güvenlik aracı (araç rust dilinde yazılmıştır).

Öğrenme ve Uygulama Kaynakları

  • OWASP API Güvenlik Top 10: Ortak API zafiyetlerini anlamanız için temel okuma materyali (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 aramak için Logger++ kullanışlı filtreler sunar (GitHub link).
  • API Uç Noktaları Listesi: Test amaçlı potansiyel API uç noktalarının özenle seçilmiş bir listesi (GitHub gist).

Referanslar

Trickest'i kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen otomatik iş akışları oluşturabilir ve otomatikleştirebilirsiniz.
Bugün Erişim Sağlayın:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'i desteklemenin diğer yolları: