Merhaba
Bu yazımda sizlere API’den bahsedeceğim.
API nedir ?
API(application programing interface) yani aplikasyon ara yüzü olarak çevirebiliriz. Bizim için API bir şeyi ifade etmez ama bilgisayar için API demek data kaynağı veya arka plan mantığıdır.
-API aynı data kaynağından hem web hem de mobile aplikasyonlara aktarılabilir. Bu da bir hacker’a geliştiricilerin(developerların) tembel olduğunu ve kesin bir açık bulabileceğimizi gösterir.
-APIler genelde text formatında yazılır (json,xml vb.)
-APIler bize data da bulunan bir müşteriyi ve ona ait bilgileri döndürürler.
JSON ‘a kısa bir bakış
-Json herhangi bir datanın text formatına dönüştürülmüş halidir.
-Datada bulunan Key-Value bilgilerini alırız.
-Süslü parantez “{ “ile başlayıp onla biter “}”.
.-Json’da objeleri “{}” içinde ; array ve list’ler “[]”
Kısacası Json’ı pythonda yazılmış bir dictionary(sözlük) olarak düşünebiliriz. Örnek olması amacından aşağıdaki yazdığım kodu inceleyebilirsiniz.
,
API’leri Nasıl Buluruz?
Buna özel API enumeration’dan bahsedeceğim. Yine de bu yazımızda biraz giriş yapalım.
-Bir web uygulamasının aynı zamanda mobile uygulaması varsa. Yukarıda bahsettiğim gibi.
-Bir web sitesinin komplex bir frontend ‘i varsa.
-Bir web sitesinin yüklemesi uzun sürüyorsa.
-Developer dökümentasyonu varsa.
-Hemen hemen bütün mobile uygulamalarda.
Yukarıdaki verdiğim örneklerde API’yi rahatça bulabiliriz.
API çeşitleri
Burada sizlere en çok kullanılan API çeşitlerinden bahsedeceğim.
RESTful :
-Yukarı tarafta gördüğünüz gibi gözükürler.
-Aplikasyonun nasıl çalıştığını bilirsek eğer yeni API endpointleri bulabliriz.
Örn: Diyelim ki youtubeda şöyle çalışıyor GET/video/1 bizim düşünmemiz gereken şudur : Eğer GET varsa o zaman Deletede vardır, diye tahmin etmeliyiz Delete/video/1 gibi.
-Yukarıdaki örneği Burpsuite kullanarak da yapabiliriz. Intruder’a isteğimizi yollarız daha sonra wordlistimizi payload olarak kullanıp denemeler yapabiliriz.
GraphQL:
-GraphQL de API’yi genelde gql?q=.. , q?q=.. , graphql?q=.. ve benzeri şekillerde bulunur.
-IDOR bulması en kolay API çeşididir.
API Dokümantasyonu
-Bazen APIler developerların kullanması için kendi dokümantasyonları olur. Bunu recon amaçlı olarak kullanabiliriz. Bu dokümantasyonlarda endpointleri listelemiş olabilir ve bu endpointlere nasıl ulaşacağımızı detaylarda saklamış olabilirler.
-Dokümantasyonları ararken “[target]developer.docs” veya “[target]API” kullanacağız.
-Bazen developerlar için tasarlanmış API’leri stackoverflow da bulabiliriz.
API Version
-Bazen buglar yeni versiyonda düzeltilmiş olabilir ama eski versiyon API hala sitede olabilir ve bu bug devam ediyor olabilir.
-/api/v3/users/1/edit varsa eğer /api/v1/users/1/edit olarak deneyebiliriz.
Bu yazımda temel API”ye değindik.API enumeration ‘da görüşmek üzere.