Web API Pentesting

Reading time: 4 minutes

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin

API Pentesting Metodolojisi Özeti

API'leri pentest etmek, zayıflıkları ortaya çıkarmak için yapılandırılmış bir yaklaşım içerir. 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) 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 sağlar. 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.

Uygulama Laboratuvarları

  • VAmPI: OWASP'ın en iyi 10 API zayıflığı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 kaba kuvvetle denemek için kullanın.
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, zayıf kimlik doğrulama için ilişkili API uç noktalarını kontrol ederek açık Swagger/OpenAPI tanım dosyalarının denetimine yardımcı olmak üzere tasarlanmış bir komut satırı aracıdır. Ayrıca manuel güvenlik testi için komut şablonları sağlar.
  • automatic-api-attack-tool, Astra ve restler-fuzzer gibi ek araçlar, saldırı simülasyonundan fuzzing ve güvenlik taramasına kadar API güvenlik testi 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 güvenlik açıklarını 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 güvenlik açıklarını avlamak için Logger++, yararlı 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

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin