May 30, 2026
Panduan Lab Portwigger — SQL Injection (Lab 2)
Halo semuanya! Pada artikel kali ini, saya akan membagikan walkthrough dan write-up pengerjaan salah satu lab dari PortSwigger Web Security…
Dwi Putra
2 min read
Halo semuanya! Pada artikel kali ini, saya akan membagikan walkthrough dan write-up pengerjaan salah satu lab dari PortSwigger Web Security Academy yang berfokus pada topik SQL Injection. Lab ini dirancang untuk mensimulasikan kerentanan dunia nyata di mana input pengguna tidak disanitisasi dengan aman, memungkinkan kita untuk memanipulasi kueri database. Melalui artikel ini, kita akan membedah studi kasus di setiap labnya, hingga proses eksekusi dalam melakukan eksploit kerentanan.
Apa itu SQL Injection?
SQL Injection adalah jenis kerentanan keamanan web yang terjadi ketika penyerang (attacker) berhasil memanipulasi kueri SQL yang dibuat oleh aplikasi ke database.
Hal ini terjadi karena aplikasi menerima input dari pengguna secara mentah-mentah tanpa adanya validasi, penyaringan (sanitisasi), atau pemisahan antara perintah kode dengan data input. Akibatnya, database menganggap input berbahaya dari penyerang tersebut sebagai instruksi SQL legal yang harus dijalankan.
(Lab 2) SQL injection vulnerability allowing login bypass
Pada kali ini, kita mencoba menemukan celah SQL Injection pada fungsi login di lab portswigger. Kita di minta untuk login sebagai administrator dengan memanfaatkan kerentanan SQL Injection.
Langkah 1 : Buka lab tersebut, lalu klik My account untuk masuk ke halaman form login. Pertama kita akan mengecek apakah function loginnya benar rentan atau tidak, dengan memasukan single quote (') di kolom username, passwordnya boleh bebas. Jika muncul 'Server Eorror' maka function itu rentan terhadap SQL Injection.
Langkah 2 : Pada petunjuk lab kita diberitahu bahwa username dari admin adalah administrator, tetapi kita tidak mengetahui password dari admin tersebut. Untuk melakukannya, gunakan informasi berikut pada kolom nama pengguna : Administrator'- - dan untuk passwordnya bebas dimasukkan teks apa saja.
Langkah 3 : Klik "Masuk". Aplikasi akan memberikan akses Anda sebagai administrator, dan Anda sudah menyelesaikan lab.
Penjelasan : Kerentanan ini bekerja dengan cara "mengomentari" bagian dari query SQL yang memeriksa kata sandi. Query aplikasi yang rentan terlihat seperti ini:
SELECT * FROM users WHERE username = '[USERNAME]' AND password = '[PASSWORD]'SELECT * FROM users WHERE username = '[USERNAME]' AND password = '[PASSWORD]'Ketika Anda menyisipkan payload administrator'- -, query menjadi :
SELECT * FROM users WHERE username = 'administrator'--' AND password = 'password'SELECT * FROM users WHERE username = 'administrator'--' AND password = 'password'Mari kita uraikan query yang disisipkan ini :
-
(- -) adalah komentar dalam SQL. Ini memberi tahu database untuk mengabaikan semua query setelah tanda itu.
-
Database mengeksekusi query yang dimodifikasi ini: SELECT * FROM users WHERE username = 'administrator'
-
Query ini berhasil menemukan pengguna administrator dan mengembalikan detail mereka, sehingga Anda bisa login tanpa pernah memeriksa kata sandi.