Cara Menguji Proteksi WAF
Mantap 👍 kalau integrasi NGINX + WAF (ModSecurity/OWASP CRS) sudah berhasil, langkah berikutnya adalah uji coba proteksi WAF supaya yakin rule-nya jalan.
Berikut cara praktisnya:
1. Cek log ModSecurity
Biasanya log ada di:
-
/var/log/nginx/error.log
(jika di-merge dengan error log) -
/var/log/modsec_audit.log
(jika pakaiSecAuditLog
)
Kalau rule aktif, setiap request yang diblok/diinspeksi akan muncul di log tersebut.
2. Uji dengan payload umum WAF
Gunakan curl atau browser untuk mengetes. Misalnya:
SQL Injection test
curl "http://yourdomain.com/?id=1' OR '1'='1"
👉 Jika WAF aktif, harusnya request ini di-block (403 Forbidden).
XSS test
curl "http://yourdomain.com/?q=<script>alert(1)</script>"
👉 WAF akan mendeteksi pola <script>
dan blok request.
LFI test (Local File Inclusion)
curl "http://yourdomain.com/?file=../../etc/passwd"
3. Gunakan SecRuleEngine DetectionOnly
(opsional)
Kalau kamu masih mau mode monitoring, aktifkan DetectionOnly:
SecRuleEngine DetectionOnly
Nanti request tidak diblok, tapi akan tetap tercatat di log. Cocok untuk uji awal.
4. Cek response HTTP
Kalau proteksi aktif, biasanya:
-
Akan dapat 403 Forbidden dari NGINX.
-
Bisa juga keluar halaman error custom tergantung konfigurasi.
5. Tes bypass rule
Untuk memastikan WAF tidak terlalu ketat:
-
Akses normal (misalnya
curl http://yourdomain.com/
) harus sukses (200 OK). -
Payload berbahaya harus ditolak (403/blocked).
👉 Jadi langkah termudah:
-
Coba akses normal → pastikan tetap bisa.
-
Coba akses
?id=1' OR '1'='1
→ pastikan kena blok. -
Cek
modsec_audit.log
untuk bukti rule bekerja.
Mau saya buatkan script otomatis (bash) untuk menguji beberapa payload sekaligus supaya lebih cepat?