Uygulama Güvenliği - Nasıl İş Uygulaması Oluşturulmaz

Provido

Katılımcı Üye
21 Eki 2015
477
1
Uygulama Güvenliği - Nasıl İş Uygulaması Oluşturulmaz


uoIdeb.jpg




Bir kaç gün önce, Twitter üzerinden bir özel mesaj aldım.



uoTX38.png




Bir mobil uygulamayı analiz etmeyeli uzun zaman olmuştu, bu yüzden uygulamaya bir göz atmaya karar verdim. Şu anda, problem düzeltilmemişti bende detayları düzelttim.



1) Keşif


Kod kısmına geçmeden önce, uygulamayı her zaman normal bir kullanıcıymış gibi kullanın. Bu durumda, uygulama hesap oluşturmanızı isteyecek, İşe alacak birini ya da hizmetini sunacak birini arayabilirsiniz. Ayrıca mekanik, ev vb. gibi farklı kategorilere göz gezdirebilirsiniz.


Resmi web sitelerine gittim ve “Google Play üzerinden indir” dedim ve uygulamayı test telefonuma indirdim. Sonrasında uygulamayı analiz etmek için telefonumdan bilgisayarıma çıkarttım.


Sonraki adım uygulamanın AndroidManifest.xml kaynağına bakmak. Apktool sayesinde uygulamanın kaynağını kolayca çıkartabiliyorsunuz.



uoTiKU.png




Şimdi AndroidManifest.xml’i okuyabiliriz. Dikkatimi ilk çeken şey React Native referansları.



uoTs0H.png




Şüphelendiğim gibi assets klasöründe index.android.bundle dosyası bulunuyor. Böylece evet, bu bir React Native uygulaması.


Bu tarz bir uygulamada kaynak kodları çıkartmak kolaydır. Jsbeautifier yardımı ile okunabilir devasa bir javascript dosyası elde edebilirsiniz.



uoTpxA.png




Dürüst olmak gerekirse, React Native uygulamalarını sevmiyorum, genel olarak çok sıkıcılar. Bu yüzden, js dosyası yerine API’sine bakmaya karar verdim.


2) API Analizi


Burp Site açıp, uygulamanın dışarıya ne göndereceğini görme zamanı. Bu kısımda, uygulamanın bütün özelliklerini kullanın, bütün durumları deneyin, aklınıza ne geliyorsa her şeyi deneyin. Sonra Burp Site’a geri dönün ve ne olduğu analiz edin.


uoTDD1.png




Uygulamanın yaptığı ağ isteğine göre, Projelerini depolamak için FireStore kullanıyor ve kullanıcıların bilgilerini depolamak için api.target.app de bulunan özel bir API kullanıyorlar. Eğer bir hata olursa, büyük ihtimalle özel API tarafında gerçekleşecektir. Bu yüzden oraya odaklanalım.



2.1) Kullanıcının konumunu ve telefon numarasını ortaya çıkarmak

Uygulamada, bir kategori seçtiğinizde bir uzman listesine ulaşacaksınız. Uygulama aşağıdaki isteği yerine getirir.



uoTvQf.png




Bu istek, tüm uzmanların özel bilgilerini içeren bir JSON nesnesi döndürür: isim, meslek, telefon numarası, lokasyon ... Belli ki bu bilgiler kullanıcı arayüzünden ulaşılmıyor. Bitiş noktasında ise aynı bilgilere ulaşabilirsiniz. /prod/user/taskers/<user_id>


2.2) Aygıt simgesini göster


Aynı bitiş noktasında kullanıcının aygıt simgesi de sızıyor. prod/user/get-services/taskers/filter/<category>



uoTzgG.png




2.3) idCognito yu değiştirme

Gizli kalmamız için UUID formatında bir idCognito bütün kullanıcılara atanır. Kötü fikir değil, dimi?



uoT18S.png





Ancak bir daha ki sefere, insert-id bitiş noktasını silmeyi unutma. Bu bitiş noktası ile herkes idCognito’yu değiştirebilir. Sadece kurbanın ismini ve kullanıcı adını bilmen yeterlidir.



uoTlbe.png




Saldırgan kurbanın idCognito’sunu değiştirdikten sonra kolaylıkla istek yaparak bilgilerine ulaşabilir. /prod/user/<idCognito>



2.4) Bütün veritabanını kazıyın



Aldığım ilk özel mesajı hatırladınız mı? Bu uygulama büyük ihtimalle bir çok belgesiz işçi tarafından kullanılmıştır. ICE or US devleti bütün veritabanını inceleyebilir mi? EVET.


1. İlk olarak bütün mevcut servislere ulaşın. Bütün kategorileri döndürür.



uoYYNb.png




2. Önceki JSON dosyasını ve her kategori için talep edilen uzman listesini ayrıştırın.



uoYa2s.png




3. Bingo, bütün uzmanların isimlerini, lokasyonlarını, telefon numaralarını vb. sahipsiniz.



3) Sonuç



Rastgele bir uygulamaya özel bilgilerinizi koymadan önce 2 kez düşünün. Bu uygulama gerçekten güvenli mi? Bu uygulamayı kim yaptı? Yasal bir şirket mi? Kendi durumunuza göre riski değerlendirin. Tehlike modeliniz nedir?

Kendinize iyi bakın.


 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.