API Enumeration – 2

API serisinin son yazısında isterseniz ilk önce önceden ne gördüğümüzden bahsedelim.

-> En iyi bilgi almanın sadece aplikasyona sormak olduğunu görmüştük.

-> API’ler bazen başka developerların da kullanması için açık bir şekilde bırakıldığından bahsetmiştik.

-> Bazen bazı web uygulamaları sizlere istediğiniz bilgiyi açıkça söyleyebilir . Bu bilgiler şunlar olabilir :

  • Bütün endpointler
  • Hangi parametreleri aldığı
  • Örnek bir api request’i
  • Örnek bir api response’u

-> En önemlisi API’nin nasıl çalıştığını dokumentasyonları okuyarak anlayabileceğimizden bahsetmiştik.

Swagger 

Swagger, JSON kullanılarak ifade edilen RESTful API’leri açıklamak için bir Arayüz Tanımlama Dilidir.

-> Swagger’ı bizler görselleştirilmiş bir API versiyonu olarak kullanıyoruz.

-> Swagger’ı bir çeşit API dokümantasyonu olarak düşünebilirsiniz.

-> Bazen bir şekilde developerlar web aplikasyonun bir yerinde swagger’ı unutmuş olabilirler. Bunu bulmak için gözümüz swagger veya /__swagger__\ şeklinde bir endpoint üzerinde olmalıdır.

Nasıl Hacklenir ?

-> Bulduğumuz dokümantasyonları okuduktan sonra her bir API endpointleri test edebiliriz. Bu testleri OWASP TOP 10 ile gerçekleştirebiliriz.

-> Her bir endpoint’in responsuna bakabiliriz.

-> Ayrıca dokümantasyonlarda belirtilmeyen parametrelere ek denemeler yapabiliriz.

Ek Parametreler ve Endpointler için Wordlist Kullanmak

Öncelikle worlist nedir ondan bahsedelim. Wordlist , kelimelerin liste şeklinde sunulmuş halidir. Brute force yapacağımız zaman veya intruder da kullanırken bu wordliste ihtiyacımız olacak.

-> Birden fazla çeşitte wordlistler mevcuttur. Bizim ihtiyacımız olan şuanlık sadece API’ler için ilgili olanlar olacak.

-> Eğer bildiğimiz bir endpoint mevcutsa api/v1/post gibi wordlistimizi kullanarak ‘post’ yerine users,replies vb. gibi örneklerle deneyebiliriz.

-> Aşağıda faydalı olabilecek wordlistler bıraktım oradan size uygun olanı seçebilirsiniz.

Wordlist-1 

Wordlist-2 

Wordlist-3

-> İlk iki wordlistimiz halka açık API’ler için. Üçüncüsü ise parametrelerde kullanmak üzere lazım olabilecek büyük boyutta bir wordlist.

Kendi Wordlistimizi Oluşturmak

-> Bazen hacking yaptığımız API’lerde spesifik olarak istediğimiz veya istemediğimiz kelimeler olabilir. Örneğin bir banka web aplikasyonuna bakıyorsanız ‘balance’ tarzı eklemeler yapabilirsiniz veya sadece istediğiniz kelimeyi kullanabilirsiniz.

-> Eğer ki aklınıza herhangi bir endpoint ismi gelmiyorsa hacking  yaptığınız uygulamaya benzer diğer web uygulamalarının API endpointlerine bakabilir onları örnek alabilirsiniz.

-> Waybackmachine uygulamasını kullanabilirsiniz.

-> En sevilen ve en işe yarar yöntem olan önünüze gelen veya uygulamadaki her gördüğünüz tuşa basarak ne işe yaradığına bakabilirsiniz.

-> Yukarıda belirttiğim işlemleri yaptıktan sonra şu iki soruya kendiniz cevap vererek hacking yaptığınız uygulamanın spesifik wordlistini oluşturabilirsiniz.

  • Uygulamanın ne dediği ? Burada bizler acaba url’de bizlere ne gösteriyor yada request/response yerinde bizlere neler demiş onlara bakabiliriz.
  • Uygulama bana neye izin veriyor neye izin vermiyor ? Bu soru bizim gizli enpointlere ulaşmak için anahtar görevini görecektir.

Diğer yazılarımda görüşmek üzere…

About The Author

Reply