ODA WebView JS Bridge — PoC

Bug Bounty / YesWeHack
Entry Point — Cara Load Halaman Ini In-App

Gunakan teknik URL Authority Confusion untuk memuat halaman ini di WebView ODA:

https://sinarpagiqponx.com@oda.com

WebView ODA memproses bagian oda.com sebagai host yang dipercaya, tapi browser memuat konten dari sinarpagiqponx.com. Ini menurunkan AC: High → AC: Low.

1 Deteksi JS Bridge

Cek apakah AndroidMessageHandler ter-expose ke halaman ini.

2 Enumerate Bridge Interface
3 Exploit — open-url / open-modal-url Tanpa Validasi

Panggil command via bridge. Target URL = halaman ini sendiri (tab ② akan tampil sebagai landing confirmation).

Console Log
[ready] Halaman dimuat — jalankan Step 1.
Jika kamu melihat tab ini terbuka IN-APP → Finding 1 CONFIRMED

URL domain kamu berhasil dibuka di WebView ODA tanpa domain validation. Lanjutkan test di bawah.

1 Context Detection
Mendeteksi konteks...
User Agent
Referrer
Loaded URL
Timestamp
Screen
2 Bridge Chaining — Apakah Bridge Juga Ada di Sini?

Jika AndroidMessageHandler tersedia di WebView yang dibuka via open-url, attacker bisa lakukan bridge chaining — trigger command lagi dari landing page ini.

3 Simulasi Impact — Phishing In-App

Demonstrasi bagaimana attacker bisa render fake login ODA di dalam UI app. User melihat app chrome ODA, bukan browser. Tidak ada data yang dikirim.

Findings Summary
Finding 1 JS Bridge open-url / open-modal-url — no domain validation
Finding 2 External URL load in-app WebView (bridge ter-expose)
Entry Point URL Authority Confusion: attacker.com\@oda.com
CVSS (AC:H) Medium 4.2 AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N
CVSS (AC:L, dengan entry point ini) Medium–High 5.4 AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
Bridge Chaining
Attack Flow
① User membuka ODA app, navigasi ke URL
→ Attacker craft URL: https://attacker.com\@oda.com
② WebView ODA memuat konten dari attacker.com
③ JS di attacker.com panggil AndroidMessageHandler.postMessage()
④ Command open-url membuka WebView baru tanpa domain validation
⑤ Phishing page attacker tampil dalam UI chrome ODA — user trust tinggi
⑥ (Jika bridge chaining) — WebView baru juga punya bridge → abuse lebih lanjut
Raw Evidence (untuk laporan)
Jalankan test di Tab ① dan ② terlebih dahulu untuk mengisi evidence...