Web Penetration Testing Checklist adalah daftar periksa sistematis yang digunakan oleh penguji keamanan (pentester) untuk mengevaluasi tingkat keamanan aplikasi berbasis web terhadap berbagai vektor serangan siber. Berdasarkan standar industri terkini seperti OWASP Top 10 dan NIST Special Publication 800-115, daftar ini mencakup seluruh fase pengujian mulai dari pengumpulan informasi (reconnaissance), analisis kerentanan, hingga eksploitasi dan pelaporan pasca-uji.
Fase Utama dalam Web Penetration Testing
Pelaksanaan pentest yang efektif memerlukan metodologi terstruktur. Berikut adalah tahapan esensial yang harus dieksekusi secara berurutan:
| Fase Pengujian | Fokus Utama | Tools Rekomendasi |
|---|---|---|
| 1. Reconnaissance | Pengumpulan informasi target, direktori tersembunyi, dan footprinting. | Nmap, Gobuster, Amass |
| 2. Mapping & Analysis | Memetakan alur aplikasi, manajemen sesi, dan mekanisme autentikasi. | Burp Suite, OWASP ZAP |
| 3. Vulnerability Assessment | Pengujian spesifik terhadap injeksi, XSS, CSRF, dan konfigurasi server. | SQLmap, Nuclei, Nikto |
| 4. Exploitation & Reporting | Validasi celah temuan melalui eksploitasi aman dan penyusunan mitigasi. | Metasploit, Custom Scripts |
Checklist Detail Berdasarkan OWASP Top 10
Pengujian kerentanan aplikasi web harus mencakup parameter keamanan kritis berikut:
1. Broken Access Control
- Uji manipulasi parameter IDOR (Insecure Direct Object References) pada URL atau body request.
- Verifikasi pembatasan akses fungsi administratif dari akun pengguna biasa (Privilege Escalation).
- Periksa konfigurasi CORS (Cross-Origin Resource Sharing) yang terlalu longgar (wildcard * pada kredensial sensitif).
2. Cryptographic Failures
- Pastikan seluruh transmisi data menggunakan protokol HTTPS dengan sertifikat SSL/TLS valid.
- Periksa implementasi HSTS (HTTP Strict Transport Security).
- Validasi metode enkripsi penyimpanan kata sandi (hindari penggunaan MD5/SHA1, gunakan bcrypt, Argon2, atau PBKDF2).
3. Injection (SQL, Command, LDAP)
- Uji input pada seluruh form login, kolom pencarian, dan parameter URL dengan karakter khusus (' OR '1'=\1).
- Pastikan aplikasi menggunakan Prepared Statements atau Parameterized Queries pada sisi basis data.
4. Insecure Design & Security Misconfiguration
- Periksa keberadaan file sensitif yang terbuka (
.git/,phpinfo.php, file backup). - Validasi penerapan HTTP Security Headers:
Content-Security-Policy(CSP),X-Frame-Options, danX-Content-Type-Options. - Pastikan pesan error sistem (stack trace) tidak ditampilkan kepada pengguna umum.
5. Identification and Authentication Failures
- Uji kebijakan kompleksitas dan panjang minimum kata sandi.
- Periksa mekanisme Brute-Force Protection / Rate Limiting pada endpoint login dan reset password.
- Validasi keamanan pengelolaan token sesi (atribut
HttpOnly,Secure, danSameSitepada cookies).
Contoh Konfigurasi Header Keamanan
Implementasikan header HTTP berikut pada web server (Nginx/Apache) untuk memitigasi berbagai serangan berbasis browser:
add_header X-Frame-Options "DENY";
add_header X-Content-Type-Options "nosniff";
add_header Content-Security-Policy "default-src 'self';";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Tips Lapangan untuk Pentester
Selalu dapatkan izin tertulis (Rules of Engagement) sebelum memulai pengujian pada lingkungan produksi. Dokumentasikan setiap temuan dengan bukti tangkapan layar, langkah-langkah reproduksi (steps to reproduce), serta rekomendasi perbaikan yang jelas bagi tim pengembang.