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-531). Ketiganya dibahas di Otentikasi, Sesi, dan Token.
Broken Link Hijacking pada tautan kedaluwarsa
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-42). Tidak ada payload di sini. Yang diperiksa adalah tautan keluar situs, misalnya tautan ke akun media sosial (Misc/Broken Link Hijacking.md:6-73). Pencarian berjalan dua tahap: manual pada tautan yang tampak, lalu memakai tool untuk menyisir halaman lain (Misc/Broken Link Hijacking.md:6-84).
| Tool | Bentuk | Yang dikerjakan |
|---|---|---|
broken-link-checker | pustaka di GitHub | memeriksa tautan secara batch (Misc/Broken Link Hijacking.md:10-125) |
Check My Links | ekstensi Chrome Web Store | memeriksa tautan pada satu halaman (Misc/Broken Link Hijacking.md:10-125) |
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-176).
⚠️ 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-87).
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-48). 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-79). Bagian How to exploit memecah pengujian menjadi sembilan kelompok, dimulai dari fungsionalitas ulasan (Misc/Business Logic Errors.md:9-1010).
| Kelompok | Yang diuji |
|---|---|
| Review Functionality | klaim 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-1611) |
| Coupon Code Functionality | kode 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-2312) |
| Delivery Charges Abuse | tarif ongkir diturunkan ke nilai negatif dan free delivery lewat manipulasi param (Misc/Business Logic Errors.md:25-2713) |
| Currency Arbitrage | membayar dalam USD lalu meminta refund dalam EUR untuk memanfaatkan selisih kurs (Misc/Business Logic Errors.md:29-3014) |
| Premium Feature Abuse | nilai 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-3715) |
| Refund Feature Abuse | beberapa request pembatalan langganan secara paralel untuk memperoleh banyak refund (Misc/Business Logic Errors.md:39-4216) |
| Cart/Wishlist Abuse | produk dengan kuantitas negatif, jumlah melebihi stok, serta pemindahan item ke cart user lain (Misc/Business Logic Errors.md:44-4717) |
| Thread Comment Functionality | komentar tanpa batas dan komentar yang mengaku sebagai user lain (Misc/Business Logic Errors.md:49-5318) |
| Parameter Tampering | field pembayaran, field tambahan, dan response manipulation untuk melewati 2FA (Misc/Business Logic Errors.md:55-5819) |
Race condition muncul tiga kali di daftar itu: rating berganda dari satu user (Misc/Business Logic Errors.md:1320), kode kupon yang dipakai dua akun pada waktu bersamaan (Misc/Business Logic Errors.md:2021), dan pembatalan langganan berulang yang berujung banyak refund (Misc/Business Logic Errors.md:4222). 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:5823).
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:424). Berkas ini menyediakan dua pemeriksaan tanpa memerlukan akses ke aplikasi (Misc/Email Spoofing.md:6-1425).
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.Contoh record SPF yang dicatat berkas ini memakai mekanisme include dan akhiran ~all (Misc/Email Spoofing.md:8-1026). 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-1427). 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:428). Pemeriksaannya cukup pada markup: anchor dengan rel kosong dan anchor tanpa rel sama sekali (Misc/Tabnabbing.md:6-1129).
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.Skrip yang dicatat berkas ini memakai dua jalur sekaligus: window.opener.parent.location.replace dan pemeriksaan window.parent != window (Misc/Tabnabbing.md:16-2130). 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-2131).
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.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-73, Misc/Email Spoofing.md:6-1425). Business Logic Errors menuntut akun uji dan alur transaksi yang lengkap, karena nilainya dibuktikan lewat request yang sah (Misc/Business Logic Errors.md:55-5819). Tabnabbing berada di antaranya: cukup satu atribut pada anchor halaman publik, tetapi pembuktiannya memerlukan halaman yang dikendalikan attacker (Misc/Tabnabbing.md:14-2131).