Pengantar

Dalam pengembangan aplikasi web, parameter HTTP digunakan untuk mengirimkan data dari pengguna ke server. Parameter ini biasanya muncul pada URL (GET) atau dalam body request (POST). Meski terlihat sederhana, kesalahan dalam memproses parameter dapat membuka celah keamanan serius yang dikenal sebagai HTTP Parameter Pollution (HPP).

HTTP Parameter Pollution terjadi ketika penyerang memanipulasi atau menduplikasi parameter dalam satu request untuk mengubah cara aplikasi memproses input. Kerentanan ini sering kali luput dari perhatian karena banyak pengembang berasumsi bahwa parameter akan selalu muncul satu kali dan diproses secara konsisten.

Padahal, perbedaan cara server, framework, dan komponen backend menangani parameter ganda dapat menjadi pintu masuk eksploitasi.


Apa Itu HTTP Parameter Pollution?

HTTP Parameter Pollution adalah teknik serangan yang memanfaatkan keberadaan parameter HTTP yang sama lebih dari satu kali dalam satu permintaan. Tujuannya adalah membingungkan logika aplikasi atau melewati mekanisme validasi.

PortSwigger juga menjelaskan bahwa perbedaan cara berbagai bahasa pemrograman dalam menangani parameter duplikat dapat menyebabkan inkonsistensi logika dan membuka celah bypass keamanan (dikutip dari Portswigger).

baca juga : DNS Cache Poisoning: Taktik Menyesatkan Browser Anda Agar Mengunjungi Situs Palsu Tanpa Anda Sadari


Bagaimana Cara Kerja HTTP Parameter Pollution?

1. Parameter Normal dalam Request

Contoh permintaan biasa:

https://example.com/login?role=user

Server membaca parameter role=user dan memprosesnya sesuai logika aplikasi.

2. Penyerang Menambahkan Parameter Duplikat

Penyerang dapat mengirimkan:

https://example.com/login?role=user&role=admin

Masalah muncul karena tidak semua sistem menangani parameter ganda dengan cara yang sama.

3. Perbedaan Penanganan Parameter

Framework Mengambil Nilai Pertama

Beberapa sistem hanya membaca parameter pertama.

Framework Mengambil Nilai Terakhir

Sistem lain justru memproses nilai terakhir.

Framework Menggabungkan Nilai

Ada juga yang menggabungkan semua nilai menjadi array.

Ketidakkonsistenan ini dapat menyebabkan validasi keamanan gagal.


Dampak HTTP Parameter Pollution

Bypass Validasi Keamanan

Jika validasi dilakukan pada parameter pertama, tetapi aplikasi memproses parameter terakhir, penyerang dapat melewati filter keamanan.

Manipulasi Hak Akses

Parameter seperti role, isAdmin, atau price dapat dimanipulasi untuk mendapatkan keuntungan tidak sah.

Gangguan Logika Aplikasi

HPP sering digunakan dalam eksploitasi logic flaw yang lebih kompleks.

baca juga : Subdomain Takeover: Ancaman Tersembunyi di Balik Subdomain yang Terlupakan


Mengapa Kerentanan Ini Berbahaya?

Tidak Mudah Terdeteksi

Banyak sistem logging hanya mencatat satu parameter, sehingga aktivitas mencurigakan sulit teridentifikasi.

Bergantung pada Implementasi Backend

Bahasa pemrograman seperti PHP, Java, atau Node.js dapat memiliki perilaku berbeda dalam menangani parameter ganda.

Bisa Digabungkan dengan Serangan Lain

HTTP Parameter Pollution sering dikombinasikan dengan SQL Injection, XSS, atau access control bypass untuk meningkatkan dampak serangan.


Cara Mencegah HTTP Parameter Pollution

Validasi Konsisten di Seluruh Lapisan

Pastikan validasi input dilakukan dengan cara yang sama seperti pemrosesan parameter.

Tolak Parameter Duplikat

Konfigurasikan server atau framework untuk menolak request dengan parameter ganda jika tidak diperlukan.

Gunakan Whitelist Parameter

Tentukan parameter yang diperbolehkan dan abaikan yang tidak sesuai.

Uji Keamanan Secara Berkala

Lakukan penetration testing untuk mengidentifikasi potensi eksploitasi berbasis parameter.

baca juga : Directory Traversal: Celah Berbahaya yang Membuka Akses ke File Server


Kesimpulan

HTTP Parameter Pollution adalah kerentanan yang muncul akibat penanganan parameter HTTP yang tidak konsisten. Dengan menduplikasi parameter dalam satu request, penyerang dapat membingungkan logika aplikasi dan melewati validasi keamanan.

Karena teknik ini sering kali tidak terlihat secara kasat mata, organisasi perlu memastikan bahwa validasi dan pemrosesan parameter dilakukan secara konsisten. Audit keamanan rutin serta pengujian terhadap logic flaw menjadi langkah penting untuk mencegah eksploitasi HPP.