React Native Application
React Native Uygulama Analizi
Uygulamanın React Native çerçevesi üzerine inşa edilip edilmediğini doğrulamak için aşağıdaki adımları izleyin:
APK dosyasının adını zip uzantısıyla değiştirin ve
cp com.example.apk example-apk.zip
veunzip -qq example-apk.zip -d ReactNative
komutunu kullanarak yeni bir klasöre çıkarın.Yeni oluşturulan ReactNative klasörüne gidin ve assets klasörünü bulun. Bu klasörün içinde, React JavaScript'i minify edilmiş bir formatta içeren
index.android.bundle
dosyasını bulmalısınız.JavaScript dosyasını aramak için
find . -print | grep -i ".bundle$"
komutunu kullanın.
JavaScript kodunu daha fazla analiz etmek için aynı dizinde index.html
adında bir dosya oluşturun ve aşağıdaki kodu ekleyin:
Dosyayı https://spaceraccoon.github.io/webpack-exploder/ adresine yükleyebilirsiniz veya aşağıdaki adımları izleyebilirsiniz:
Google Chrome'da
index.html
dosyasını açın.Geliştirici Araç Çubuğunu açmak için OS X için Command+Option+J veya Windows için Control+Shift+J tuşlarına basın.
Geliştirici Araç Çubuğunda "Sources" (Kaynaklar) seçeneğine tıklayın. Ana paketi oluşturan klasörler ve dosyalara bölünmüş bir JavaScript dosyası görmelisiniz.
Eğer index.android.bundle.map
adında bir dosya bulursanız, kaynak kodunu minify edilmemiş bir formatta analiz edebilirsiniz. Harita dosyaları, minify edilmiş tanımlayıcıları eşlemek için kaynak eşlemesi içerir.
Hassas kimlik bilgileri ve uç noktaları aramak için aşağıdaki adımları izleyin:
JavaScript kodunu analiz etmek için hassas anahtar kelimeleri belirleyin. React Native uygulamaları genellikle Firebase, AWS S3 hizmet uç noktaları, özel anahtarlar vb. gibi üçüncü taraf hizmetler kullanır.
Bu özel durumda, uygulamanın Dialogflow hizmetini kullandığı gözlemlendi. Onun yapılandırmasıyla ilgili bir desen arayın.
Keşif süreci sırasında JavaScript kodunda hassas sabit kimlik bilgilerinin bulunduğu şanslı bir durum oldu.
Referanslar
Last updated