OWASP Top 10 adalah “kitab suci” bagi siapa pun yang serius belajar keamanan web. Setiap beberapa tahun sekali, Open Web Application Security Project (OWASP) merilis daftar 10 kerentanan web paling kritis berdasarkan data nyata dari ribuan aplikasi dan laporan para praktisi di seluruh dunia. Bagi pemula yang baru terjun ke cybersecurity, memahami OWASP Top 10 adalah langkah fundamental yang tidak bisa dilewati — dan TryHackMe punya room khusus yang dirancang untuk mengajarkan semuanya secara hands-on.
Dimas Prasetyo, seorang pentester senior dengan 8 tahun pengalaman di industri keamanan siber Indonesia, menekankan pentingnya OWASP Top 10 sebagai fondasi. “Di setiap proyek penetration testing yang saya kerjakan — baik untuk bank, e-commerce, maupun startup — OWASP Top 10 selalu jadi checklist pertama yang saya buka. Kenyataannya, 70% kerentanan yang saya temukan di lapangan masih masuk dalam 10 kategori ini,” jelasnya. Dimas menambahkan bahwa di salah satu proyeknya untuk platform fintech nasional pada 2025, ia menemukan SQL Injection di halaman login yang seharusnya sudah terlindungi — bukti bahwa kerentanan klasik ini masih sangat relevan.
Dalam artikel ini, kita akan melakukan walkthrough lengkap room OWASP Top 10 di TryHackMe. Room ini adalah salah satu yang paling populer di platform tersebut, dengan rating tinggi dari komunitas. Kalian tidak hanya akan membaca teori — kalian akan langsung praktik mengeksploitasi setiap kerentanan di lingkungan yang aman dan legal.
Apa Itu OWASP Top 10 dan Mengapa Wajib Dipelajari?
OWASP (Open Web Application Security Project) adalah organisasi nirlaba global yang fokus pada peningkatan keamanan perangkat lunak. Setiap 3-4 tahun, mereka merilis dokumen OWASP Top 10 — daftar 10 risiko keamanan aplikasi web paling kritis berdasarkan data statistik dari puluhan organisasi di seluruh dunia.
Versi terbaru (OWASP Top 10:2021) mencakup:
- Broken Access Control — Kontrol akses yang rusak
- Cryptographic Failures — Kegagalan kriptografi
- Injection — Injeksi (SQL, OS, LDAP, dll.)
- Insecure Design — Desain tidak aman
- Security Misconfiguration — Kesalahan konfigurasi keamanan
- Vulnerable and Outdated Components — Komponen rentan dan usang
- Identification and Authentication Failures — Kegagalan identifikasi & autentikasi
- Software and Data Integrity Failures — Kegagalan integritas software & data
- Security Logging and Monitoring Failures — Kegagalan logging & monitoring
- Server-Side Request Forgery (SSRF) — Pemalsuan permintaan sisi server
Room TryHackMe ini menggunakan versi OWASP Top 10:2017, yang memiliki beberapa perbedaan urutan dan kategori dibanding versi 2021. Namun, semua konsep fundamental tetap sama dan sangat relevan untuk dipelajari. Bahkan, banyak organisasi masih menggunakan framework 2017 sebagai acuan audit mereka.
Persiapan Sebelum Masuk ke Room
Sebelum memulai walkthrough, pastikan kalian sudah:
- Memiliki akun TryHackMe (gratis bisa, tapi subscription lebih nyaman)
- Terhubung ke VPN TryHackMe atau menggunakan AttackBox bawaan
- Memahami dasar-dasar HTTP, HTML, dan cara kerja browser
- Familiar dengan command line Linux dasar
Room ini bisa diakses di: tryhackme.com/room/owasptop10. Setelah masuk, klik tombol “Start Machine” untuk menyalakan mesin target. Tunggu sekitar 2-3 menit sampai mesin siap.
Walkthrough OWASP Top 10 Room — Langkah demi Langkah
A1:2017 — Injection (SQL Injection)
Kerentanan pertama yang dibahas adalah Injection, dengan fokus pada SQL Injection. Di task ini, kalian akan menghadapi form login yang rentan. Teknik dasarnya: masukkan ' OR 1=1 -- di field username dan password sembarang. Karakter ' menutup string query SQL, OR 1=1 membuat kondisi selalu benar, dan -- mengomentari sisa query.
Flag pertama biasanya didapat dengan login sebagai admin menggunakan teknik di atas. Untuk tantangan lanjutan, kalian akan menggunakan UNION-based SQL Injection untuk mengekstrak data dari tabel lain. Gunakan ' UNION SELECT 1,2,3 -- untuk mencari jumlah kolom, lalu ganti angka dengan database(), table_name, dan column_name untuk enumerasi.
A2:2017 — Broken Authentication
Di bagian ini, targetnya adalah sistem registrasi yang lemah. Coba daftar dengan username yang sudah ada (seperti admin atau darren) tapi dengan sedikit variasi — misalnya menambahkan spasi di akhir. Jika sistem tidak melakukan trimming, kalian bisa membuat akun dengan username yang “terlihat” sama tapi sebenarnya berbeda. Setelah berhasil registrasi, kalian bisa mengakses akun target.
Teknik lain yang perlu dicoba: credential stuffing dengan password umum seperti password, 123456, atau admin. Room ini juga mengajarkan pentingnya rate-limiting pada form login.
A3:2017 — Sensitive Data Exposure
Bagian ini fokus pada data sensitif yang terekspos — baik di database, log, atau transmisi jaringan. Di room, kalian akan menemukan direktori /assets yang berisi backup database. Gunakan Gobuster atau dirb untuk menemukannya:
gobuster dir -u http://TARGET_IP/ -w /usr/share/wordlists/dirb/common.txt
Setelah menemukan file backup, download dan cari password hash di dalamnya. Gunakan CrackStation atau hashcat untuk melakukan cracking hash tersebut.
A4:2017 — XML External Entities (XXE)
XXE adalah kerentanan yang terjadi ketika aplikasi memproses input XML dari pengguna tanpa validasi yang memadai. Di task ini, kalian akan mengeksploitasi form “Contact Us” yang mengirim data dalam format XML. Payload dasarnya:
<!DOCTYPE replace [<!ENTITY xxe SYSTEM "file:///etc/passwd">]>
<contact><name>&xxe;</name></contact>
Payload ini akan membaca file /etc/passwd dari server dan menampilkannya dalam response. Ini adalah teknik klasik untuk membaca file sensitif dari server target.
A5:2017 — Broken Access Control
Di sini, tantangannya adalah Insecure Direct Object Reference (IDOR). Kalian login sebagai user biasa, lalu mengubah parameter ID di URL untuk mengakses data user lain. Contoh: jika URL profil adalah /profile?id=1, coba ubah ke /profile?id=2 — jika tidak ada pengecekan otorisasi, data user lain akan muncul.
Teknik “horizontal privilege escalation” ini sangat umum di aplikasi yang tidak memvalidasi apakah user yang sedang login berhak mengakses resource yang diminta. Room ini juga mencakup vertical privilege escalation — mencoba mengakses endpoint admin dari akun user biasa.
A6:2017 — Security Misconfiguration
Kesalahan konfigurasi adalah salah satu kerentanan paling umum di dunia nyata. Di room ini, kalian akan menemukan default credentials untuk aplikasi Pensive Notes. Setelah login dengan kredensial bawaan, kalian bisa mengakses note milik user lain.
Selalu cek error messages — seringkali aplikasi yang salah konfigurasi memberikan terlalu banyak informasi tentang stack trace, versi framework, atau path internal yang bisa dimanfaatkan untuk serangan lebih lanjut.
A7:2017 — Cross-Site Scripting (XSS)
XSS adalah kerentanan yang memungkinkan penyerang menyuntikkan script berbahaya ke halaman web yang dilihat oleh user lain. Di task ini, ada beberapa jenis XSS yang dipraktikkan:
- Reflected XSS — Script dipantulkan langsung oleh server. Coba
<script>alert('XSS')</script>di form pencarian - Stored XSS — Script disimpan di database dan ditampilkan ke semua pengunjung. Coba di field komentar
- DOM-based XSS — Script dieksekusi di sisi klien melalui manipulasi DOM
Flag biasanya didapat dengan mencuri cookie user lain atau memicu popup alert. Untuk tantangan lebih lanjut, kalian akan menggunakan XSS untuk session hijacking — mencuri cookie session admin dan menggunakannya untuk login.
A8:2017 — Insecure Deserialization
Insecure deserialization terjadi ketika aplikasi melakukan deserialisasi data dari sumber yang tidak terpercaya tanpa validasi. Di room TryHackMe, kalian akan menemukan cookie yang di-encode dalam format khusus. Decode cookie tersebut, manipulasi nilainya (misalnya mengubah role dari user menjadi admin), encode kembali, dan kirimkan ke server.
Ini adalah teknik yang powerful — jika berhasil, kalian bisa mendapatkan akses admin hanya dengan memodifikasi cookie di browser. Gunakan Burp Suite atau Browser Developer Tools untuk memanipulasi cookie dengan mudah.
A9:2017 — Using Components with Known Vulnerabilities
Banyak aplikasi modern dibangun di atas framework dan library pihak ketiga — jika komponen tersebut memiliki kerentanan yang diketahui dan tidak di-update, aplikasi menjadi rentan. Di task ini, kalian akan mengeksploitasi aplikasi berbasis Node.js dengan versi library yang sudah usang.
Gunakan searchsploit atau exploit-db untuk mencari CVE dari versi library yang terdeteksi. Contoh command:
searchsploit nodejs
Temukan exploit yang sesuai, download, dan jalankan terhadap target. Room ini mengajarkan pentingnya Software Composition Analysis (SCA) dan vulnerability scanning dalam pipeline development.
A10:2017 — Insufficient Logging & Monitoring
Kerentanan terakhir ini berbeda — bukan tentang mengeksploitasi bug teknis, tapi tentang kegagalan organisasi dalam mendeteksi dan merespons serangan. Di room, kalian akan mensimulasikan skenario di mana serangan brute-force terhadap form login tidak terdeteksi karena tidak ada monitoring yang memadai.
Pelajaran utamanya: logging yang baik mencatat siapa, apa, kapan, dan dari mana. Tanpa log yang memadai, tim keamanan tidak bisa menyelidiki insiden setelah terjadi — istilahnya “flying blind”. Menurut laporan Verizon DBIR 2025, rata-rata waktu yang dibutuhkan organisasi untuk mendeteksi sebuah pelanggaran data adalah 207 hari — angka yang sangat mengkhawatirkan.
Tips Sukses Mengerjakan Room OWASP Top 10
- Baca semua instruksi dengan teliti — setiap task berisi petunjuk yang membantu
- Gunakan Burp Suite — tools ini wajib untuk intercept, modify, dan replay request HTTP
- Catat setiap flag — flag adalah jawaban yang perlu dikumpulkan untuk menyelesaikan room
- Jangan terburu-buru — beberapa kerentanan butuh trial-and-error sebelum berhasil
- Pelajari konsep, bukan hanya jawaban — pahami mengapa eksploitasi bekerja
- Gunakan Google dan dokumentasi — tidak ada yang mengharapkan kalian hafal semuanya
Pertanyaan yang Sering Diajukan (FAQ)
Q: Apakah room ini cocok untuk pemula?
A: Sangat cocok! Room ini dirancang khusus untuk pemula yang baru belajar web security. Setiap kerentanan dijelaskan dengan contoh yang mudah diikuti.
Q: Apakah perlu subscription TryHackMe?
A: Tidak wajib. Room ini bisa diakses dengan akun gratis, tapi subscription memberikan akses ke AttackBox dan waktu yang lebih fleksibel.
Q: Berapa lama waktu yang dibutuhkan?
A: Untuk pemula, siapkan 4-6 jam. Kalau sudah familiar dengan konsep dasarnya, bisa selesai dalam 2-3 jam.
Q: Tools apa saja yang dibutuhkan?
A: Browser, Burp Suite (Community Edition gratis), dan terminal Linux. Semua sudah tersedia di Kali Linux.
Kesimpulan
TryHackMe OWASP Top 10 adalah room yang wajib diselesaikan oleh setiap pemula di bidang cybersecurity. Room ini memberikan fondasi yang solid tentang 10 kerentanan web paling kritis — mulai dari SQL Injection, XSS, hingga SSRF — dalam format hands-on yang interaktif dan menyenangkan.
Seperti yang diungkapkan Dimas Prasetyo, “Room OWASP Top 10 di TryHackMe adalah titik awal terbaik yang bisa saya rekomendasikan untuk junior pentester. Saya sendiri rutin menyuruh anggota tim baru saya untuk menyelesaikan room ini di minggu pertama mereka — dan hasilnya selalu konsisten: mereka jadi punya pemahaman praktis yang kuat tentang bagaimana kerentanan web benar-benar bekerja, bukan hanya teori di atas kertas.”
Setelah menyelesaikan room ini, langkah selanjutnya yang direkomendasikan adalah melanjutkan ke room OWASP Juice Shop — aplikasi web yang sengaja dibuat tidak aman dengan puluhan tantangan yang mencakup semua kategori OWASP Top 10 dalam skenario yang lebih realistis. Selamat belajar dan happy hacking!
Sumber: wawancara Dimas Prasetyo, pentester senior (2025); dokumentasi resmi OWASP Top 10 (owasp.org); laporan Verizon DBIR 2025.