mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
5.0 KiB
5.0 KiB
Web API Pentesting
{{#include ../../banners/hacktricks-training.md}}
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.
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
{{#include ../../banners/hacktricks-training.md}}