React Native Application
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
애플리케이션이 React Native 프레임워크로 구축되었는지 확인하려면 다음 단계를 따르세요:
APK 파일의 이름을 zip 확장자로 변경하고 cp com.example.apk example-apk.zip
및 unzip -qq example-apk.zip -d ReactNative
명령을 사용하여 새 폴더에 추출합니다.
새로 생성된 ReactNative 폴더로 이동하여 assets 폴더를 찾습니다. 이 폴더 안에는 minified 형식의 React JavaScript가 포함된 index.android.bundle
파일이 있어야 합니다.
find . -print | grep -i ".bundle$"
명령을 사용하여 JavaScript 파일을 검색합니다.
JavaScript 코드를 추가로 분석하려면, 동일한 디렉토리에 index.html
이라는 파일을 생성하고 다음 코드를 입력합니다:
파일을 https://spaceraccoon.github.io/webpack-exploder/에 업로드하거나 다음 단계를 따르세요:
Google Chrome에서 index.html
파일을 엽니다.
OS X의 경우 Command+Option+J 또는 Windows의 경우 Control+Shift+J를 눌러 개발자 도구를 엽니다.
개발자 도구에서 "Sources"를 클릭합니다. 폴더와 파일로 나뉘어진 JavaScript 파일이 보일 것이며, 이는 주요 번들을 구성합니다.
index.android.bundle.map
이라는 파일을 찾으면, 비축소 형식으로 소스 코드를 분석할 수 있습니다. 맵 파일은 소스 매핑을 포함하고 있어, 축소된 식별자를 매핑할 수 있습니다.
민감한 자격 증명 및 엔드포인트를 검색하려면 다음 단계를 따르세요:
JavaScript 코드를 분석하기 위해 민감한 키워드를 식별합니다. React Native 애플리케이션은 종종 Firebase, AWS S3 서비스 엔드포인트, 개인 키 등과 같은 서드파티 서비스를 사용합니다.
이 특정 경우에, 애플리케이션이 Dialogflow 서비스를 사용하고 있는 것으로 관찰되었습니다. 그 구성과 관련된 패턴을 검색합니다.
재조사 과정에서 JavaScript 코드에서 민감한 하드코딩된 자격 증명이 발견된 것은 다행이었습니다.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)