June 4, 2026
Panduan Portswigger (Lab: SQL injection UNION attack, finding a column containing text)
Pada lab ini, kita diminta untuk menemukan kolom mana saja yang dapat menampung data bertipe teks (string) dari hasil kueri asli aplikasi…
Dwi Putra
1 min read
Pada lab ini, kita diminta untuk menemukan kolom mana saja yang dapat menampung data bertipe teks (string) dari hasil kueri asli aplikasi pada filter kategori produk. Lab akan dianggap selesai (Solved) jika kita berhasil menyuntikkan perintah 'UNION SELECT' berisi string acak yang diberikan oleh PortSwigger ke dalam kolom yang tepat.
Database memiliki aturan tipe data yang sangat ketat. Jika kita mencoba mengekstrak data teks (seperti username atau password) ke dalam kolom database yang aslinya hanya menerima angka (seperti kolom harga atau ID produk), database akan memicu data type mismatch error dan serangan kita akan gagal. Oleh karena itu, kita harus menguji setiap kolom satu per satu menggunakan nilai string acak (misalnya 'abc') hingga menemukan posisi kolom yang kompatibel tanpa menghasilkan error. Berikut langkah-langkah yang Saya lakukan dalam melakukan eksploitasi.
Langkah 1 : Buka lab portswiggernya, lalu pilih kategori produk apa saja, misalnya 'Accessories'.
Langkah 2 : Kita cek terlebih dahulu apakah parameter ini rentan terhadap SQL Injection atau tidak, dengan menambahkan tanda single quote ('). Jika web menampilkan erorr maka parameter ini rentan.
Langkah 3 : Setelah itu kita akan memasukan query suntikan untuk memastikan bahwa tabel pada kategori produk yang kita tumpangi itu memiliki 3 buah kolom. Kita menggunakan query sebagai berikut,
'UNION SELECT NULL, NULL, NULL--'UNION SELECT NULL, NULL, NULL--
Karena web berhasil mengeluarkan respon, itu berarti jumlah kolom adalah berjumlah 3. Null itu hanyalah nilai kosong yang dimasukan hanya untuk mengetahui di tabel itu ada kolom untuk memasukan nilai atau tidak. Tapi untuk sekarang kita diminta untuk mencari diantara 3 kolom itu mana yang merupakan kolom dengan data yang bertipe string (huruf). Jadi kita coba untuk mengganti satu persatu nilai Null dengan string yang sudah disiapkan di lab ('8aZWus').
' UNION SELECT '8aZWus', NULL, NULL--
' UNION SELECT NULL, '8aZWus', NULL--
' UNION SELECT NULL, NULL, '8aZWus'--' UNION SELECT '8aZWus', NULL, NULL--
' UNION SELECT NULL, '8aZWus', NULL--
' UNION SELECT NULL, NULL, '8aZWus'--Kalian coba satu persatu, ketika lab langsung berubah jadi solve maka disitulah kolom yang berisi tipe data string. Dan lab pun berhasil diselesaikan.