FixVibe
Covered by FixVibehigh

CORS Salah konfigurasi: Risiko Polisi Terlalu Permisif

Perkongsian Sumber Silang Asal (CORS) ialah mekanisme penyemak imbas yang direka untuk melonggarkan Dasar Asal Sama (SOP). Walaupun diperlukan untuk apl web moden, pelaksanaan yang tidak betul—seperti menggemakan pengepala Asal peminta atau menyenarai putih asal 'null'—boleh membenarkan tapak berniat jahat mengekstrak data pengguna peribadi.

CWE-942

Kesan

Penyerang boleh mencuri data sensitif dan disahkan daripada pengguna aplikasi yang terdedah [S2]. Jika pengguna melawat tapak web hasad semasa log masuk ke apl yang terdedah, tapak hasad itu boleh membuat permintaan silang asal kepada API apl dan membaca respons [S1][S2]. Ini boleh membawa kepada kecurian maklumat peribadi, termasuk profil pengguna, token CSRF atau mesej peribadi [S2].

Punca Punca

CORS ialah mekanisme berasaskan HTTP-header yang membolehkan pelayan menentukan asal (domain, skema atau port) yang dibenarkan untuk memuatkan sumber [S1]. Kerentanan biasanya timbul apabila dasar CORS pelayan terlalu fleksibel atau kurang dilaksanakan [S2]:

  • Pengepala Asal Tercermin: Sesetengah pelayan membaca pengepala Origin daripada permintaan pelanggan dan menggemakannya kembali dalam pengepala respons Access-Control-Allow-Origin (ACAO) [S2]. Ini dengan berkesan membolehkan mana-mana tapak web mengakses sumber [S2].
  • Kad Liar Tersalah konfigurasi: Walaupun kad bebas * membenarkan mana-mana sumber untuk mengakses sumber, ia tidak boleh digunakan untuk permintaan yang memerlukan bukti kelayakan (seperti kuki atau pengepala Kebenaran) [S3]. Pembangun sering cuba memintas perkara ini dengan menjana pengepala ACAO secara dinamik berdasarkan permintaan [S2].
  • Menyenarai putih 'null': Sesetengah aplikasi menyenarai putih asal null, yang boleh dicetuskan oleh permintaan diubah hala atau fail setempat, membenarkan tapak berniat jahat untuk menyamar sebagai asal null untuk mendapatkan akses ZXCVFIXVIBETOVIZBEXVKV.
  • Ralat Penghuraian: Kesilapan dalam pemadanan regex atau rentetan semasa mengesahkan pengepala Origin boleh membenarkan penyerang menggunakan domain seperti trusted-domain.com.attacker.com [S2].

Adalah penting untuk ambil perhatian bahawa CORS bukanlah perlindungan terhadap Pemalsuan Permintaan Silang Tapak (CSRF) [S2].

Pembetulan Konkrit

  • Gunakan Senarai Putih Statik: Elakkan menjana pengepala Access-Control-Allow-Origin secara dinamik daripada pengepala Origin permintaan [S2]. Sebaliknya, bandingkan asal permintaan dengan senarai kod keras domain dipercayai [S3].
  • Elakkan Asal 'null': Jangan sekali-kali masukkan null dalam senarai putih asal-usul yang dibenarkan [S2] anda.
  • Hadkan Bukti Kelayakan: Hanya tetapkan Access-Control-Allow-Credentials: true jika benar-benar perlu untuk interaksi silang asal khusus [S3].
  • Gunakan Pengesahan yang Betul: Jika anda mesti menyokong berbilang asal, pastikan logik pengesahan untuk pengepala Origin adalah teguh dan tidak boleh dipintas oleh subdomain atau domain yang kelihatan serupa [S2].

Bagaimana FixVibe mengujinya

FixVibe kini memasukkan ini sebagai semakan aktif berpagar. Selepas pengesahan domain, active.cors menghantar permintaan API asal yang sama dengan asal penyerang sintetik dan menyemak pengepala respons CORS. Ia melaporkan asal usul sewenang-wenangnya, CORS yang mempunyai kelayakan kad liar dan CORS yang terbuka luas pada titik akhir API bukan awam sambil mengelakkan hingar aset awam.