DEV Community

Cover image for Praktikum Keamanan Web: Open Redirect Vulnerability πŸ”€πŸŽ£
ahmadasroni38
ahmadasroni38

Posted on

Praktikum Keamanan Web: Open Redirect Vulnerability πŸ”€πŸŽ£

Halo, teman-teman mahasiswa! Selamat datang di praktikum licik tapi seru tentang Open Redirect Vulnerability – celah yang kayak "pintu jebakan" di website! Bayangkan setelah login sukses, aplikasi redirect kamu ke halaman dashboard. Tapi kalau developer lupa validasi, hacker bisa suntikkan URL jahat, dan kamu langsung dikirim ke situs phishing palsu yang mirip banget. Kamu masukin password lagi β†’ Akun jebol! Ini sering dipakai buat phishing karena user percaya redirect dari situs resmi.

Open redirect nggak langsung curi data, tapi bikin phishing jauh lebih kredibel. Yuk kita bahas santai, dengan contoh gampang di Laravel/PHP, dan ilustrasi keren biar langsung ngerti!

Kartun "cat-phishing" ini lucu tapi nunjukin gimana open redirect dipakai buat jebak user – hacker senyum lebar! πŸ˜‚

Gambar cartoon hacker ini gambarin serangan phishing lewat open redirect – user tergoda!

Apa Itu Open Redirect? πŸ€”πŸ”€

Open redirect terjadi saat aplikasi redirect user ke URL yang dikontrol dari input (parameter GET/POST) tanpa validasi ketat. Hacker manfaatin buat kirim user ke situs jahat, sambil keliatan dari situs asli.

Attack flow phishing ini jelas banget: User klik link trusted β†’ Redirect ke fake site β†’ Masukin credential!

Scheme open redirection ini simpel tapi efektif – dari situs legit ke evil.com!

Contoh 1: Redirect Setelah Login (Klasik Banget!)

Kode rentan:

public function login(Request $request) {
    // ... login logic
    $redirect = $request->input('return_url', '/dashboard');
    return redirect($redirect);  // Langsung redirect tanpa cek!
}
Enter fullscreen mode Exit fullscreen mode

URL normal: /login?return_url=/dashboard β†’ Aman.

URL jahat: /login?return_url=https://fakebank.com β†’ Setelah login, user dikirim ke phishing site!

Contoh 2: Logout atau OAuth Redirect

/logout?next=https://evil.com β†’ User logout, langsung ke situs jahat.

Atau di OAuth: /oauth/callback?redirect_uri=https://attacker.com β†’ Curi code/token.

Contoh 3: Share Link atau Email Confirmation

Link email: https://situs.com/confirm?redirect=https://malicious.com

User klik, confirm, terus redirect ke jahat – percaya banget karena dari email resmi!

Diagram complete guide ini detail nunjukin gimana open redirect dipakai buat phishing & token theft!

Understanding Open Redirection Attack ini gambarin proses lengkap – user nggak sadar!

Contoh 4: Kombinasi dengan XSS atau Open Redirect Chain

Kalau ada XSS, hacker suntik link open redirect β†’ Lebih berbahaya.

Cara Mencegah Open Redirect (Mudah & Efektif!) πŸ›‘οΈβœ¨

  1. Whitelist URL yang Diizinkan
   $allowed = ['/dashboard', '/profile', url()->previous()];
   if (!in_array($redirect, $allowed)) $redirect = '/dashboard';
Enter fullscreen mode Exit fullscreen mode
  1. Cek Domain Sama (Relative Path Only)
    Pakai url()->previous() atau force internal.

  2. Pakai Signed Redirect (Laravel punya!)

   return redirect()->signedRoute('dashboard');  // Otomatis validasi signature
Enter fullscreen mode Exit fullscreen mode
  1. Validasi Strict
   if (!Str::startsWith($url, url('/'))) abort(400);  // Harus mulai dari domain sendiri
Enter fullscreen mode Exit fullscreen mode

Diagram prevention dari Microsoft ini nunjukin proses secure redirect – validasi dulu baru redirect!

Identifying Open Redirection ini bagian dari best practices – whitelist & check!

Latihan Seru Buat Kamu! πŸ’ͺπŸ”₯

  1. Buat login dengan redirect rentan, test phishing link.
  2. Kirim link jahat ke temen (di lab ya!), lihat dia percaya nggak.
  3. Tambahin whitelist/signed route, test lagi (harusnya aman!).
  4. Coba di labs seperti PortSwigger Open Redirect.

Selamat praktikum, guys! Open Redirect ini vulnerability "sederhana tapi jahat" yang bikin phishing sukses besar, tapi dengan validasi & whitelist, website kamu anti-phishing total πŸŽ£πŸ”’ Jadi developer yang bikin user aman dari jebakan! Ingat: Selalu validasi redirect URL! Keep coding safely and have fun! πŸŽ‰πŸ”€

Top comments (0)