React Native Application
React Native Application Analysis
यह पुष्टि करने के लिए कि एप्लिकेशन React Native ढांचे पर बनाया गया था, इन चरणों का पालन करें:
APK फ़ाइल का नाम बदलकर zip एक्सटेंशन दें और इसे एक नए फ़ोल्डर में निकालें, कमांड का उपयोग करके
cp com.example.apk example-apk.zip
औरunzip -qq example-apk.zip -d ReactNative
।नए बनाए गए ReactNative फ़ोल्डर में जाएं और assets फ़ोल्डर को खोजें। इस फ़ोल्डर के अंदर, आपको फ़ाइल
index.android.bundle
मिलनी चाहिए, जिसमें React JavaScript संकुचित प्रारूप में है।JavaScript फ़ाइल खोजने के लिए कमांड का उपयोग करें
find . -print | grep -i ".bundle$"
।
JavaScript कोड का और विश्लेषण करने के लिए, उसी निर्देशिका में index.html
नामक एक फ़ाइल बनाएं जिसमें निम्नलिखित कोड हो:
आप फ़ाइल को https://spaceraccoon.github.io/webpack-exploder/ पर अपलोड कर सकते हैं या इन चरणों का पालन करें:
Google Chrome में
index.html
फ़ाइल खोलें।OS X के लिए Command+Option+J या Windows के लिए Control+Shift+J दबाकर Developer Toolbar खोलें।
Developer Toolbar में "Sources" पर क्लिक करें। आपको एक JavaScript फ़ाइल दिखाई देनी चाहिए जो फ़ोल्डरों और फ़ाइलों में विभाजित है, जो मुख्य बंडल बनाती है।
यदि आप index.android.bundle.map
नामक फ़ाइल पाते हैं, तो आप अनमिनिफाइड प्रारूप में स्रोत कोड का विश्लेषण कर सकेंगे। मैप फ़ाइलों में स्रोत मैपिंग होती है, जो आपको मिनिफाइड पहचानकर्ताओं को मैप करने की अनुमति देती है।
संवेदनशील क्रेडेंशियल्स और एंडपॉइंट्स की खोज करने के लिए, इन चरणों का पालन करें:
JavaScript कोड का विश्लेषण करने के लिए संवेदनशील कीवर्ड की पहचान करें। React Native अनुप्रयोग अक्सर Firebase, AWS S3 सेवा एंडपॉइंट्स, निजी कुंजी आदि जैसे तृतीय-पक्ष सेवाओं का उपयोग करते हैं।
इस विशेष मामले में, अनुप्रयोग को Dialogflow सेवा का उपयोग करते हुए देखा गया। इसके कॉन्फ़िगरेशन से संबंधित पैटर्न की खोज करें।
यह सौभाग्य की बात थी कि पुनः खोज प्रक्रिया के दौरान JavaScript कोड में संवेदनशील हार्ड-कोडेड क्रेडेंशियल्स पाए गए।
संदर्भ
Last updated