Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen tarafından sunulan API güvenlik testi ve pentesting eğitim serisinin bir bölümüdür. Eğitmen, Postman ve Burp Suite gibi araçları kullanarak API güvenlik açıklarını tespit etme yöntemlerini göstermektedir.
- Video, API güvenlik testlerinin adım adım nasıl yapılacağını göstermektedir. İçerikte login ve get details fonksiyonlarının test edilmesi, brute force saldırısı uygulaması, gereksiz bilgilerin sızdırılması (data exposure), kaynak eksikliği ve rate limiting sorunları ele alınmaktadır. Eğitmen, CTF (Capture The Flag) etkinliği üzerinden API güvenlik açıklarını tespit etme sürecini detaylı olarak anlatmaktadır.
- Videoda ayrıca Android uygulamalarının nasıl çalıştırılacağı, APK dosyalarının ne olduğu ve Android Studio ile emülatör kullanımı da gösterilmektedir. Eğitmen, "The Command App" adlı bir uygulamayı örnek olarak kullanarak, kullanıcı girişi yapma, yorum yazma ve Burp Suite ile API isteklerini yakalama işlemlerini adım adım anlatmaktadır.
- 00:04İkinci App İncelemesi
- İkinci app'te bir post ve bir get isteği bulunmaktadır.
- Post isteği ile login yapılıyor, email ve parola gönderiliyor.
- Get isteği ile kullanıcının detayları alınıyor ve authorization token isteniyor.
- 01:14Login İşlemi ve Hata
- Postman'dan login isteği yapıldığında header'lar boş, body'ye email ve parola gönderiliyor.
- Test edildiğinde token geliyor ve "api2 authentication" değişkenine kaydediliyor.
- Get details içerisinde "unresoft" hatası alınıyor çünkü email ve parola bilgileri eksik.
- 02:13Kaynak İncelemesi
- Kaynaklarda bulunan CSV dosyasında kullanıcı adı ve parolalar bulunmaktadır.
- CSV dosyasında bin tane kullanıcı adı ve parola kombinasyonu bulunmaktadır.
- İlk deneme (brown grimes hotmail.com ve parola) başarısız oluyor, "success false" hatası alınıyor.
- 03:38Brute Force Stratejisi
- Senaryo muhtemelen bir veri sızıntısı (data leak) sonucu kullanıcıların parolalarını değiştirdiği bir durum.
- Postman'da brute force sistemi olmadığı için BurpSuite ile birlikte çalışılıyor.
- Postman'da "Capture Request and Cookies with Postman" seçeneği kullanılarak proxy ayarları yapılıyor.
- 05:58BurpSuite Kullanımı
- Proxy ayarları yapıldıktan sonra BurpSuite'de istekler yakalanabiliyor.
- Yakalanan istekte post isteği, wp ape user login'e yapılan istek ve header'lar görülebiliyor.
- Yakalanan paketi kaybetmemek için "Send to Repeater" seçeneği kullanılıyor.
- 09:04Brute Force İşlemi
- Repeater'daki paketi "Send to Intruder" seçeneği ile brute force işlemine dönüştürüyoruz.
- Intruder'da email ve parola bilgileri dolar işaretleri içerisine ekleniyor.
- Pitchfork saldırı tipi seçilerek hem email hem parola kombinasyonları denenebiliyor.
- 11:02Brute Force Saldırısı İçin Excel Hazırlama
- Excel'de kullanıcı adları ve parolalar virgülle ayrılmış şekilde verilmiş, ancak bunlar tek bir kolonda yer alıyor.
- Excel'de "Data" menüsünden "Text to Columns" seçeneği kullanılarak virgülle ayrılan veriler ayrı kolonlara aktarılabilir.
- Kullanıcı adları ve parolalar ayrı kolonlara kopyalanıp, saldırı için gerekli pozisyon ve pitchfork seçenekleri işaretlenerek saldırı başlatılabilir.
- 12:32Saldırı Sonuçları ve Değerlendirme
- Ücretsiz versiyonda Intruder aracı yavaşlatılmış durumda, ücretli versiyonda ise hızlandırılmış.
- Saldırı sonucunda "401" statüsü görüldüğünde işlem tamamlanmış demektir, "200" statüsü ise başarılı giriş anlamına gelir.
- Saldırı sonucunda 455. satırda "200" statüsü görülmüş ve başarılı giriş yapılmıştır.
- 14:50Başarılı Giriş Sonrası İşlemler
- Başarılı giriş sonrası email ve parola bilgileri görüntülenebilir, ayrıca response kısmında token bilgisi de görülebilir.
- Postman kullanılarak alınan bilgiler test edilebilir, başarılı giriş sonrası "success true" ve token bilgisi gelir.
- Token bilgisi kullanılarak "get details" isteği gönderildiğinde kullanıcı bilgileri görüntülenebilir ve flag bilgisi bulunabilir.
- 17:42API Açıklarının Önemi
- Bu örnekte kaba kuvvet saldırısıyla API'ye giriş yapılmış ve bir data sızıntısı tespit edilmiştir.
- API'deki açık, rate limit yapılmaması ve devamlı istek atılmasının önüne geçilmemesidir.
- Bu tür açıkları engellemek için Cloudflare gibi çözümler kullanılabilir.
- 18:30API 3 İncelemesi
- API 3, gereksiz bilgilerin fazlasıyla gün ışığına çıkması (accessive data exposure) konusunu ele alır.
- API 3'te kullanıcı oluşturma endpoint'i bulunmakta ve Postman üzerinden test edilebilir.
- Kullanıcı oluşturma işlemi sonrası kullanıcı adı, isim ve ID bilgileri görüntülenir, ancak daha fazla hassas veri bulunmamaktadır.
- 20:40Android APK Dosyalarının Çalıştırılması
- Android uygulamaları APK uzantılı olup, Windows'taki exe dosyaları gibi çalışır ve telefonlara doğrudan kurulabilir.
- APK dosyalarını çalıştırmak için bilgisayar üzerinde emülatör veya Android Studio kullanılabilir.
- Web pentesting eğitimi için Android Studio kurmak gereksizdir, mobil sızma eğitiminde zaten emülatörler kuruludur.
- 21:52Emülatör Kullanımı
- APK dosyasını çalıştırmak için sanal bir telefon olan emülatör gereklidir.
- Android Studio'da "adb manager" üzerinden emülatör çalıştırılabilir.
- Emülatör çalıştırıldığında sanal telefon elde edilir ve APK dosyası bu telefon içerisinde çalıştırılabilir.
- 22:55Uygulama İmzalama
- Mobil sızma eğitimlerinde uygulamaların imzalanması işlemi gösterilir.
- Uygulama imzalama için Key Tool ve Jar Signer araçları kullanılır.
- Bu araçların komut istemcisinde çalışabilmesi için bilgisayarda Java Development Kit (JDK) yüklü olması gerekir.
- 23:39Uygulamanın Test Edilmesi
- Test edilecek uygulamanın adı "The Command App" (Yorum Uygulaması) olarak belirtilmiştir.
- Uygulamaya giriş yapmak için base URL, kullanıcı ID ve parola bilgileri girilmelidir.
- Uygulama Twitter gibi yorum yazma özelliğine sahiptir ve lokasyon izni isteyebilir.
- 26:19Burp Suite ile Proxy Kullanımı
- Uygulamanın API isteklerini yakalamak için Burp Suite proxy kullanılır.
- Burp Suite'de manuel proxy configuration ayarlanarak host name 127.0.0.80 ve port 8880 kullanılır.
- Proxy ayarlandıktan sonra uygulama içinde yapılan istekler Burp Suite'de yakalanmaya başlar.
- 27:28Uygulama Sorunlarını Çözme
- Uygulamada çıkış yapma seçeneği olmadığı için, emülatördeki verileri temizlemek için "wipe data" seçeneği kullanılabilir.
- Emülatördeki verileri temizledikten sonra uygulama sıfırdan yüklenebilir.
- Yeni yüklenen uygulamada giriş yapmadan önce base URL ve proxy ayarları tekrar yapılmalıdır.
- 30:44API İsteklerinin İncelenmesi
- Burp Suite'de proxy üzerinden gelen istekler "send to repeater" ile tekrarlanabilir.
- HTTP history üzerinden gelen cevaplar incelenebilir.
- API isteklerinde gereksiz veriler (device ID, enlem boylam) da bulunabilir ve bu veriler ele geçirilebilir.
- 33:04API Güvenliği ve Dördüncü Challenge
- Mobil uygulamanın API'sinden yapılan istekler ve gelen cevaplar dinlendiğinde, fazladan bilgi tespit edildi ve bu bilgilerin zararlı olabileceği belirtildi.
- API güvenliği açısından JSON'da kullanılmayacak verilerin serileştirilmemesi gerektiği vurgulandı.
- Dördüncü challenge'da "lack of resources" (kaynak eksikliği) ve "rate limiting" (hız sınırlaması) sorunları ele alınacak.
- 34:43İki Faktörlü Koruma ve OTP
- Uygulamada üç metot bulunuyor: post login, mobil no ile login ve verify OTP (one time password).
- İki faktörlü koruma, kullanıcı adı ve parola bilinse bile telefon numarasına gelen kodla giriş yapma işlemidir.
- API'de rate limiting sorunu olduğu için OTP kodunu brute force yöntemiyle denemek gerekebilir.
- 35:59Brute Force Denemesi
- Postman'dan örnek bir mobil numara kullanılarak OTP isteği gönderildi ve numaraya dört haneli OTP gönderildiği belirtildi.
- Verify OTP metodu ile farklı OTP kodları denenildi ancak hepsi "invalid" (geçersiz) olarak reddedildi.
- Konsolda başka bir ipucu olmadığı için OTP kodunu bulmak için brute force yöntemi kullanılması gerektiği düşünüldü.
- 38:54Burp Suite ile Brute Force
- Burp Suite'de proxy ayarları yapılarak OTP isteği intercept edildi ve yakalanan OTP kodu "send to intruder" ile aktarıldı.
- Intruder'da "sniper" modu seçilerek 1000'den 9999'a kadar olan rakamlar için brute force denemesi yapıldı.
- Burp Suite'in ücretsiz versiyonlarının brute force işleminin yavaş çalışabileceği belirtildi ve deneme sonucu 403 (invalid OTP) alındı.
- 41:34Brute Force Saldırısı ve Authentication Key
- 1872 numaralı istekte response true ve authentication key elde edildi.
- Ücretsiz versiyonda bu işlem uzun sürdüğü için çok uğraşmaya gerek yok.
- Authentication key'i kaybetmemek için center repeater kullanılarak durduruldu.
- 42:44Postman'da Test
- Postman'da 1500 yollandığında "invelit" hatası alındı, 1872'de ise anahtar verildi.
- Anahtar kopyalanıp test edildi ve flag geldi.
- One time password (iki faktörlü koruma) mesajı alınamadığı için brute force yöntemi kullanıldı.
- 44:24Güvenlik Önerileri
- API'nin daha güvenli olması için one time password gibi güvenlik önlemlerinin rate limiti olması gerekir.
- Ücretsiz versiyonda brute force işlemi uzun sürüyor, ücretli versiyonda ise daha hızlı yapılabilir.
- Dört haneli şifreler için beş dakika içinde tüm olasılıkları denemek mümkün olabilir, bu nedenle rate limit olması gerekiyor.