Lompat ke konten
dokumentasi.id
Commit 0a16c9d
v2
Star6,9 rb

11

Serangan Miscellaneous dan Business Logic

Folder Misc menyimpan catatan yang tidak masuk ke kategori injeksi mana pun. Empat berkas yang dibahas di halaman ini tidak menuntut payload rumit. Dua di antaranya hanya membaca keadaan di luar aplikasi: tautan keluar yang sudah mati dan record DNS pengirim email. Dua lainnya memakai alur yang sah di dalam aplikasi, yaitu alur transaksi dan cara anchor membuka tab baru. Karena itu temuannya sering berlabel rendah, sementara dampaknya baru terasa ketika dirangkai dengan langkah lain.

README mendaftar tujuh entri Misc, dan tiga di antaranya bersinggungan dengan sesi serta kredensial: Account Takeover, Default Credentials, dan JWT Vulnerabilities (README.md:46-53). Ketiganya dibahas di Otentikasi, Sesi, dan Token.

Berkas ini mendefinisikan kondisinya dalam satu kalimat: Broken Link Hijacking ada ketika target menautkan ke domain atau halaman yang sudah kedaluwarsa (Misc/Broken Link Hijacking.md:3-4). Tidak ada payload di sini. Yang diperiksa adalah tautan keluar situs, misalnya tautan ke akun media sosial (Misc/Broken Link Hijacking.md:6-7). Pencarian berjalan dua tahap: manual pada tautan yang tampak, lalu memakai tool untuk menyisir halaman lain (Misc/Broken Link Hijacking.md:6-8).

ToolBentukYang dikerjakan
broken-link-checkerpustaka di GitHubmemeriksa tautan secara batch (Misc/Broken Link Hijacking.md:10-12)
Check My Linksekstensi Chrome Web Storememeriksa tautan pada satu halaman (Misc/Broken Link Hijacking.md:10-12)

Berkas ini tidak menuliskan langkah eksploitasi. Nilainya ada pada referensi yang dilampirkan, termasuk satu laporan berjudul "How I was able to takeover the company's LinkedIn Page" (Misc/Broken Link Hijacking.md:14-17).

⚠️ Jangan mengklaim Broken Link Hijacking sebelum memastikan domain tujuannya benar-benar tersedia untuk didaftarkan. Catatan ini hanya mendefinisikan kondisi tautan dan cara menemukannya; penguasaan domain adalah syarat terpisah yang tidak dibuktikan oleh tool pemindai tautan (Misc/Broken Link Hijacking.md:3-8).

Business Logic Errors pada alur transaksi

Definisinya menekankan pemakaian alur pemrosesan yang sah untuk menghasilkan konsekuensi negatif bagi organisasi (Misc/Business Logic Errors.md:3-4). Berkas itu juga menyatakan kerentanan ini bisa muncul di semua fitur aplikasi, sehingga tidak ada satu endpoint khusus yang bisa diperiksa (Misc/Business Logic Errors.md:6-7). Bagian How to exploit memecah pengujian menjadi sembilan kelompok, dimulai dari fungsionalitas ulasan (Misc/Business Logic Errors.md:9-10).

KelompokYang diuji
Review Functionalityklaim sebagai verified reviewer tanpa membeli produk, rating di luar skala 1 sampai 5, rating berganda oleh satu user, serta CSRF pada fungsi ulasan (Misc/Business Logic Errors.md:10-16)
Coupon Code Functionalitykode dipakai ulang, kode yang sama dipakai dua akun secara paralel, HTTP Parameter Pollution dan Mass Assignment untuk mengirim banyak kode, serta diskon untuk produk yang tidak masuk cakupan (Misc/Business Logic Errors.md:18-23)
Delivery Charges Abusetarif ongkir diturunkan ke nilai negatif dan free delivery lewat manipulasi param (Misc/Business Logic Errors.md:25-27)
Currency Arbitragemembayar dalam USD lalu meminta refund dalam EUR untuk memanfaatkan selisih kurs (Misc/Business Logic Errors.md:29-30)
Premium Feature Abusenilai true-false di request dan response, Match & Replace di Burp, serta variabel penanda premium di cookie dan local storage (Misc/Business Logic Errors.md:32-37)
Refund Feature Abusebeberapa request pembatalan langganan secara paralel untuk memperoleh banyak refund (Misc/Business Logic Errors.md:39-42)
Cart/Wishlist Abuseproduk dengan kuantitas negatif, jumlah melebihi stok, serta pemindahan item ke cart user lain (Misc/Business Logic Errors.md:44-47)
Thread Comment Functionalitykomentar tanpa batas dan komentar yang mengaku sebagai user lain (Misc/Business Logic Errors.md:49-53)
Parameter Tamperingfield pembayaran, field tambahan, dan response manipulation untuk melewati 2FA (Misc/Business Logic Errors.md:55-58)

Race condition muncul tiga kali di daftar itu: rating berganda dari satu user (Misc/Business Logic Errors.md:13), kode kupon yang dipakai dua akun pada waktu bersamaan (Misc/Business Logic Errors.md:20), dan pembatalan langganan berulang yang berujung banyak refund (Misc/Business Logic Errors.md:42). Uji response manipulation pada baris terakhir bersinggungan dengan Teknik Bypass Kontrol, karena nilainya diubah di sisi klien dan bukan dihitung ulang di server (Misc/Business Logic Errors.md:58).

Email Spoofing lewat record SPF dan DMARC

Email spoofing memalsukan header pengirim sehingga perangkat lunak klien menampilkan alamat pengirim yang palsu, dan pengguna umumnya menerimanya apa adanya (Misc/Email Spoofing.md:4). Berkas ini menyediakan dua pemeriksaan tanpa memerlukan akses ke aplikasi (Misc/Email Spoofing.md:6-14).

graph LR
  A{"Record SPF ada?"} -- tidak --> V["Rentan email spoofing"]
  A -- ada --> B{"Record DMARC ada?"}
  B -- tidak --> V
  B -- ada --> C{"Tag policy bernilai none?"}
  C -- ya --> V
  C -- tidak --> OK["Pengirim palsu tertahan"]
  style A fill:#f59e0b,color:#000
  style B fill:#f59e0b,color:#000
  style C fill:#f59e0b,color:#000
  style V fill:#dc2626,color:#fff
  style OK fill:#2d7d46,color:#fff
%% fig: Penilaian SPF dan DMARC
%% desc: Ketidakhadiran SPF, ketidakhadiran DMARC, atau policy bernilai none membuat domain bisa dipakai memalsukan pengirim.
Fig. 1: Penilaian SPF dan DMARCKetidakhadiran SPF, ketidakhadiran DMARC, atau policy bernilai none membuat domain bisa dipakai memalsukan pengirim.

Contoh record SPF yang dicatat berkas ini memakai mekanisme include dan akhiran ~all (Misc/Email Spoofing.md:8-10). Contoh DMARC-nya justru memakai nilai yang oleh berkas yang sama dianggap rentan, yaitu p=none dengan alamat rua untuk laporan agregat (Misc/Email Spoofing.md:11-14). Berkas ini tidak menyinggung DKIM, jadi dua record itulah batas pemeriksaan yang didokumentasikan di sini.

Tabnabbing dan properti window.opener

Ketika sebuah tautan dibuka di tab baru lewat target="_blank", halaman di tab baru itu bisa mengakses tab awal dan mengubah location-nya lewat properti window.opener (Misc/Tabnabbing.md:4). Pemeriksaannya cukup pada markup: anchor dengan rel kosong dan anchor tanpa rel sama sekali (Misc/Tabnabbing.md:6-11).

sequenceDiagram
  participant V as Victim
  participant T as Halaman target
  participant E as evil.com
  V->>T: klik anchor target=_blank
  T-->>V: tab baru berisi evil.com
  E->>V: window.opener.parent.location.replace
  V-->>E: tab awal berpindah ke halaman phishing
%% fig: Jalannya Tabnabbing
%% desc: Halaman attacker memakai window.opener untuk memindahkan tab awal korban ke situs phishing.
Fig. 2: Jalannya TabnabbingHalaman attacker memakai window.opener untuk memindahkan tab awal korban ke situs phishing.

Skrip yang dicatat berkas ini memakai dua jalur sekaligus: window.opener.parent.location.replace dan pemeriksaan window.parent != window (Misc/Tabnabbing.md:16-21). Langkah pembuktiannya berurutan: attacker menyiapkan halaman berisi skrip tersebut, korban diarahkan ke sana sehingga terbuka di tab baru, lalu tab latar berpindah ke evil.com yang biasanya berupa halaman phishing (Misc/Tabnabbing.md:14-21).

Merangkai temuan kecil menjadi dampak

Keempat catatan berbagi pola yang sama: satu fakta kecil di permukaan aplikasi, satu langkah yang diambil di luar kendali aplikasi, lalu dampak yang menimpa pengguna. Diagram berikut menyusun rantai itu untuk masing-masing temuan.

graph TD
  BLH["Broken Link Hijacking: tautan ke domain kedaluwarsa"] --> R1["Domain didaftarkan pihak lain"]
  TAB["Tabnabbing: anchor target=_blank tanpa rel"] --> R2["Halaman attacker memakai window.opener"]
  SPF["Email Spoofing: tanpa SPF atau DMARC p=none"] --> R3["Header pengirim dipalsukan"]
  BLE["Business Logic Errors: param transaksi"] --> R4["Kuantitas, ongkir, dan refund dimanipulasi"]
  R1 --> I1["Tautan resmi korban menampilkan isi attacker"]
  R2 --> I2["Tab awal korban berpindah ke halaman phishing"]
  R3 --> I3["Email phishing tampak berasal dari domain korban"]
  R4 --> I4["Kerugian finansial dan fitur premium tanpa bayar"]
  I1 --> D["Dampak pada pengguna dan reputasi organisasi"]
  I2 --> D
  I3 --> D
  I4 --> D
  style BLH fill:#f59e0b,color:#000
  style TAB fill:#f59e0b,color:#000
  style SPF fill:#f59e0b,color:#000
  style BLE fill:#f59e0b,color:#000
  style R1 fill:#dc2626,color:#fff
  style R2 fill:#dc2626,color:#fff
  style R3 fill:#dc2626,color:#fff
  style R4 fill:#dc2626,color:#fff
  style I1 fill:#8b5cf6,color:#fff
  style I2 fill:#8b5cf6,color:#fff
  style I3 fill:#8b5cf6,color:#fff
  style I4 fill:#8b5cf6,color:#fff
  style D fill:#336791,color:#fff
%% fig: Rantai dari temuan kecil ke dampak nyata
%% desc: Empat temuan berlabel rendah masing-masing membuka satu jalur eksploitasi yang bermuara pada dampak yang sama bagi pengguna.
Fig. 3: Rantai dari temuan kecil ke dampak nyataEmpat temuan berlabel rendah masing-masing membuka satu jalur eksploitasi yang bermuara pada dampak yang sama bagi pengguna.

Urutan pengerjaannya mengikuti rantai itu. Broken Link Hijacking dan Email Spoofing bisa diselesaikan tanpa menyentuh aplikasi, cukup dari tautan keluar dan record DNS (Misc/Broken Link Hijacking.md:6-7, Misc/Email Spoofing.md:6-14). Business Logic Errors menuntut akun uji dan alur transaksi yang lengkap, karena nilainya dibuktikan lewat request yang sah (Misc/Business Logic Errors.md:55-58). Tabnabbing berada di antaranya: cukup satu atribut pada anchor halaman publik, tetapi pembuktiannya memerlukan halaman yang dikendalikan attacker (Misc/Tabnabbing.md:14-21).