API Testing
Last updated
Was this helpful?
Last updated
Was this helpful?
API'ler yazılım sistemlerinin ve uygulamaların iletişim kurmasını ve veri paylaşmasını sağlar. API'lerdeki güvenlik açıkları bir web sitesinin gizlilik, bütünlük ve kullanılabilirliğinin temel yönlerini zayıflatabileceğinden API testi önemlidir.
Tüm dinamik web siteleri API'lerden oluşur, bu nedenle SQL Injection gibi klasik web güvenlik açıkları API testi olarak sınıflandırılabilir.
Github'da arama yaparak bu api için bir sızmış bilgi veya kaynak kod varmı diye bakabiliriz.
Postmanda proxy ayarlayın ve foxyproxy ile bütün istekleri postman'a yönlendirin.
Swagger Editor: https://editor.swagger.io/
Api'nin dökümantasyon veya listeleme sayfasına erişip erişilemediğini kontrol edebiliriz.
Eğer bir api'ye istek atılırken bir nesne gönderiliyor ise bu nesneye yeni parametreler ekleyerek göndermeyi deneyebiliriz.
Bu gönderilmeyen parametreler genellikle başka GET isteklerinde görülebilir.
Eğer sunucu tarafı parametreleri ayıran & karakterini doğru işlemiyorsa sunucuda çalışan koddaki parametreleri değiştirebiliriz.
Öncelikle %26 ile bir parametre eklemeye çalışıyoruz. Eğer sunucu bir hata veriyorsa zafiyet vardır.
Sonrasında %23 karakteri ile sunucuya hata verdirip gizli bir parametre var mı diye kontrol ediyoruz. Eğer varsa muhtemelen hata mesajında yazar.
Bulduğumuz parametreyi %26 ile ekleyip düzenleyebiliriz.
Eğer bir api isteği bir http methodu ile yapılıyor ise diğer http methodları denenebilir.
Saldırganın kendine ait olmayan bir veriye erişmesini sağlar. Eğer uygulamada düzgün erişim kontrolu yapımıyorsa ortaya çıkar. Web güvenliğinde biz bu zafiyeti IDOR olarak biliriz.
Eğer aşağıdaki kurallar yok ise brute force denenebilir.
Eski api versiyonları halen silinmemiş olabilir. Bu api servislerinde bırakılmış kritik bilgiler olabilir.
Mass Assignment zafiyeti, kullanıcıdan gelen verilerin doğrudan model nesnelerine atanarak yetkisiz alanların güncellenmesi riskidir.
Bu gizli parametreleri bulmak için Arjun veya ParamMiner kullanılabilir
Portswigger Academy: https://portswigger.net/web-security/api-testing
HTB API Attacks: https://academy.hackthebox.com/course/preview/api-attacks
APISEC University: https://www.apisecuniversity.com/courses/api-penetration-testing