Cryptology Academy · Pelajaran

Kerentanan OAuth dan Pola Serangan

Pelajari manipulasi URI pengalihan, CSRF pada titik akhir otorisasi, dan kerentanan kebocoran token.

Pelajaran 4 dari 413 langkah

Kerentanan OAuth dan Pola Serangan adalah pelajaran Cryptology Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cryptology Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cryptology Academy mencakup 4 pelajaran total.

Pengalihan Terbuka pada redirect_uri

Server otorisasi OAuth harus memvalidasi parameter redirect_uri secara ketat. Jika server mengizinkan pencocokan awalan atau pencocokan wildcard (misalnya menerima URL apa pun yang dimulai dengan "https://app.example.com"), penyerang membuat permintaan otorisasi yang mengalihkan ke "https://app.example.com.attacker.com/steal" atau ke pengalihan terbuka pada domain yang sah, lalu mencuri kode otorisasi.

CSRF pada Titik Akhir Otorisasi

Tanpa perlindungan CSRF, penyerang dapat memulai alur OAuth dan mengelabui peramban korban agar menyelesaikan otorisasi. Korban tanpa sengaja memberikan otorisasi kepada klien penyerang. Parameter "state" (RFC 6749) mencegahnya: klien membuat state acak, menyertakannya dalam permintaan, dan memverifikasi bahwa nilainya cocok pada panggilan balik. Ketidakcocokan membatalkan alur.

Penyadapan Kode Otorisasi

Pada platform seluler, aplikasi berbahaya dapat mendaftarkan skema URI khusus yang sama dengan klien OAuth yang sah dan menyadap kode otorisasi yang dialihkan setelah autentikasi pengguna. PKCE (RFC 7636) merupakan pertahanan lengkap: kode yang disadap tidak berguna tanpa pemverifikasi kode yang hanya dibuat oleh aplikasi sah pada awal alur.

Kebocoran Token melalui Header Referer

Ketika token ID atau token akses disertakan dalam fragmen URL atau parameter kueri, navigasi berikutnya dari halaman tersebut menyertakan URL dalam header Referer, yang berpotensi membocorkan token kepada skrip analitik pihak ketiga atau penyedia CDN. Selalu gunakan alur kode otorisasi dengan pengiriman token melalui kanal belakang agar token tidak muncul dalam URL.

Serangan Kekacauan dalam Penyiapan Multi-Penyedia

Ketika klien mendukung beberapa penyedia OAuth, serangan kekacauan mengelabui klien agar mengirimkan kode otorisasi yang diperoleh dari Penyedia A ke titik akhir token Penyedia B. Klien harus memvalidasi klaim "iss" dalam token ID dan mengikat panggilan balik ke penyedia tertentu yang memulai alur menggunakan parameter state atau JARM (Mode Respons Otorisasi yang Diamankan dengan JWT).

SSRF melalui redirect_uri

Serangan pemalsuan permintaan sisi server (SSRF) menargetkan implementasi OAuth yang melakukan permintaan HTTP sisi server ke redirect_uri. Jika server otorisasi mengambil redirect_uri untuk memverifikasinya, penyerang memasok alamat IP internal (misalnya, http://169.254.169.254/latest/meta-data/) untuk mengakses metadata instans awan atau layanan internal. Validasi redirect_uri yang ketat dan berbasis daftar izin mencegah hal ini.

Pengambilalihan Akun melalui Benturan Klaim Email

Banyak aplikasi menggunakan klaim email dari token ID OIDC untuk menautkan akun di berbagai penyedia. Jika penyerang mengendalikan alamat email yang cocok dengan akun korban di penyedia lain, penyerang dapat mendaftar melalui penyedia yang berbeda menggunakan email tersebut dan memperoleh akses ke akun korban. Pertahanan: tautkan akun hanya berdasarkan pasangan (iss, sub), jangan pernah berdasarkan email saja.

Kekacauan Algoritme JWT

Serangan kekacauan algoritme JWT mengeksploitasi implementasi yang mempercayai header "alg" untuk memilih algoritme verifikasi. Serangan: ubah "alg" dari "RS256" menjadi "HS256" dan tanda tangani token menggunakan kunci publik server sebagai rahasia HMAC (karena kunci publik bersifat publik). Pertahanan: selalu tentukan algoritme yang diharapkan secara eksplisit dalam kode verifikasi, jangan pernah mempercayai klaim alg pada header token.

Penipuan OAuth melalui Pemalsuan Layar Persetujuan

Penyerang mendaftarkan klien OAuth berbahaya dengan nama dan logo yang tampak sah, lalu mengirim tautan penipuan kepada target. Korban melihat layar persetujuan OAuth yang asli (disediakan oleh Google, Microsoft, dan sebagainya) untuk aplikasi berbahaya dan memberikan akses. Pertahanan: pastikan client_id sesuai dengan aplikasi yang diharapkan; Google dan Microsoft menyediakan program verifikasi klien untuk aplikasi yang sah.

Serangan Eskalasi Ruang Lingkup

Eskalasi ruang lingkup terjadi ketika klien memperoleh token dengan izin yang lebih luas daripada yang diotorisasi pengguna. Cacat implementasi yang melewati validasi ruang lingkup pada titik akhir token, menyimpan token dengan ruang lingkup gabungan dari berbagai permintaan, atau gagal memvalidasi bahwa ruang lingkup dalam token yang diterbitkan tidak melebihi ruang lingkup yang diotorisasi, semuanya dapat menyebabkan eskalasi hak istimewa melalui OAuth.

Rangkuman Praktik Terbaik Keamanan

Lindungi implementasi OAuth dengan: menggunakan validasi redirect_uri yang mencocokkan secara tepat, mewajibkan PKCE untuk semua klien publik, memvalidasi parameter state untuk perlindungan CSRF, mengikat token ID berdasarkan (iss, sub), bukan email, menentukan algoritme JWT yang diharapkan secara eksplisit, meminta ruang lingkup minimal, menggunakan token akses berumur pendek dengan rotasi token penyegaran, serta mengaudit tampilan layar persetujuan untuk mengetahui risiko peniruan merek.

Pemeriksaan redirect_uri OAuth

Server otorisasi OAuth menerima redirect_uri apa pun yang diawali dengan "https://app.example.com". Serangan apa yang dimungkinkan oleh hal ini?

Rangkuman Pelajaran: Pola Serangan OAuth

Serangan utama OAuth: pengalihan terbuka melalui validasi redirect_uri yang longgar (gunakan pencocokan tepat), CSRF melalui parameter state yang tidak ada, penyadapan kode di perangkat seluler (dikurangi dengan PKCE), kebocoran token dalam URL, kekacauan dalam penyiapan multi-penyedia (validasi iss), SSRF melalui redirect_uri yang diambil server, benturan klaim email (gunakan iss+sub), kekacauan algoritme JWT (tetapkan alg yang diharapkan), dan penipuan melalui layar persetujuan palsu.

Gratis untuk memulai

Belajar Cryptology Academy dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
67
Pelajaran
261

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Kerentanan OAuth dan Pola Serangan” gratis?

Ya — teks lengkap “Kerentanan OAuth dan Pola Serangan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cryptology Academy, upgrade ke CoddyKit PRO. Kursus Cryptology Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Kerentanan OAuth dan Pola Serangan”?

Pelajari manipulasi URI pengalihan, CSRF pada titik akhir otorisasi, dan kerentanan kebocoran token. Kamu berlatih Cryptology Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cryptology Academy?

Tidak diperlukan pengalaman sebelumnya. Cryptology Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Kerentanan OAuth dan Pola Serangan” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cryptology Academy ini?

Ya. Setiap pelajaran Cryptology Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Alur OAuth 2.0 dan Jenis Token
  2. PKCE: Mengamankan Klien Publik
  3. Klaim OpenID Connect dan Token ID
  4. Kerentanan OAuth dan Pola Serangan
← Kembali ke Cryptology Academy