SQL Injection merupakan salah satu kerentanan aplikasi web yang terjadi ketika input dari pengguna dapat memengaruhi query SQL yang dijalankan oleh server. Pada pengujian keamanan aplikasi LabKeu, kerentanan ini ditemukan pada salah satu dari dua jalur login yang tersedia, yaitu /login dan /login-noportal.
Pengujian tidak hanya dilakukan untuk mencari apakah SQL Injection tersedia, tetapi juga membandingkan perilaku kedua endpoint tersebut. Hasil pengujian menunjukkan bahwa /login-noportal dapat dipengaruhi oleh manipulasi input hingga menyebabkan authentication bypass, sedangkan pengujian pada jalur /login tidak menunjukkan hasil bypass yang sama.
🔎 Fokus Pengujian
Temuan: SQL Injection
Target: LabKeu — 192.168.1.70:3000
Endpoint yang dibandingkan: /login dan /login-noportal
Lingkungan pengujian: Kali Linux
Hasil utama: Authentication bypass pada /login-noportal
❓ Mengapa SQL Injection Perlu Diuji pada Fitur Login?
Proses login biasanya menggunakan username dan password untuk menentukan apakah seseorang boleh masuk ke dalam aplikasi. Di sisi server, data tersebut dapat digunakan dalam query database untuk mencari akun yang sesuai.
Masalah muncul apabila input pengguna dimasukkan langsung ke dalam query tanpa mekanisme pengamanan seperti prepared statement atau parameterized query. Dalam kondisi tersebut, karakter tertentu dapat mengubah struktur query yang seharusnya hanya digunakan untuk mencari username dan password.
💡 Intinya: SQL Injection bukan sekadar memasukkan karakter aneh ke form. Tujuan pengujiannya adalah melihat apakah input pengguna dapat mengubah logika query yang dijalankan oleh server.
❓ Apa Saja Jalur Login yang Ditemukan?
Sebelum melakukan pengujian SQL Injection, struktur aplikasi diperiksa terlebih dahulu untuk mengetahui jalur autentikasi yang tersedia. Pada aplikasi LabKeu terdapat dua endpoint login yang menjadi perhatian, yaitu /login dan /login-noportal.
🔐 /login
Jalur login portal yang digunakan untuk autentikasi pengguna.
⚠️ /login-noportal
Jalur login perusahaan yang menjadi lokasi SQL Injection berhasil dibuktikan.
Karena pembimbing meminta kedua jalur dibandingkan, pengujian tidak langsung berfokus pada satu endpoint saja. Perilaku normal dan hasil pengujian dari keduanya menjadi bagian penting dalam analisis.
❓ Bagaimana Pengujian Login Normal Dilakukan?
Sebelum melakukan pengujian terhadap input yang mencurigakan, dilakukan login menggunakan kredensial yang memang valid. Tujuannya adalah mendapatkan baseline atau kondisi normal aplikasi.
Request tersebut menghasilkan 302 Found dengan redirect menuju /dashboard. Artinya login menggunakan username dan password yang benar berjalan secara normal.

❓ Apa yang Terjadi Ketika Input Login Mengganggu Query SQL?
Setelah kondisi normal diketahui, pengujian dilanjutkan dengan memberikan input yang dapat mengganggu struktur query. Tahap ini bertujuan untuk melihat apakah aplikasi memproses input secara aman atau justru memberikan error dari database.
Hasilnya bukan redirect login seperti kondisi normal. Server memberikan 200 OK dan menampilkan pesan error SQL.

Respons tersebut menjadi indikasi kuat bahwa input username telah memengaruhi query SQL yang diproses oleh server. Selain itu, pesan error juga memperlihatkan bagian query yang berkaitan dengan account_type = 'perusahaan'.

❓ Apakah SQL Injection Benar-Benar Bisa Melewati Login?
Setelah muncul indikasi SQL Injection, pengujian dilanjutkan untuk mengetahui apakah manipulasi tersebut benar-benar dapat memengaruhi proses autentikasi. Pengujian menggunakan password yang sengaja dibuat salah sehingga keberhasilan login tidak dapat dijelaskan hanya karena kredensial yang benar.
Hasil pengujian memberikan 302 Found dengan redirect menuju /dashboard, meskipun password yang dikirim adalah salah.
🚨 SQL Injection Berhasil Dibuktikan
Input pada parameter username dapat memengaruhi proses autentikasi sehingga pengguna dapat masuk ke dashboard tanpa menggunakan password yang benar.
Mau Kuasai SQL Injection Aplikasi Web: Login vs Login-noportal Sampai Bisa Praktik Langsung?
Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.
Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →
Ini merupakan bukti utama bahwa masalah yang ditemukan bukan hanya SQL error. Manipulasi input telah berdampak langsung terhadap mekanisme autentikasi aplikasi.

❓ Bagaimana Perbandingan `/login` dan `/login-noportal`?
Bagian penting dari pengujian ini adalah membandingkan kedua jalur login. Tujuannya bukan menganggap seluruh sistem login rentan hanya karena satu endpoint memiliki masalah, tetapi menentukan endpoint mana yang benar-benar menunjukkan perilaku rentan berdasarkan hasil pengujian.
| Aspek | /login | /login-noportal |
|---|---|---|
| Login normal | Berjalan pada jalur login portal | Berhasil menggunakan akun perusahaan |
| Pengujian SQL Injection | Tidak menunjukkan bypass yang sama | Menunjukkan SQL error dan authentication bypass |
| Hasil utama | Tidak dikonfirmasi vulnerable berdasarkan pengujian ini | SQL Injection terkonfirmasi |
Perbandingan ini penting karena dua endpoint login yang berada dalam satu aplikasi belum tentu memiliki implementasi backend yang sama. Berdasarkan pengujian yang dilakukan, SQL Injection berhasil dibuktikan pada /login-noportal, sedangkan hasil pengujian pada /login tidak menunjukkan authentication bypass yang sama.
💡 Pelajaran penting: dalam penetration testing, hasil “tidak ditemukan” pada satu endpoint tidak berarti seluruh aplikasi aman. Setiap jalur dan fungsi perlu diuji berdasarkan implementasinya masing-masing.
❓ Mengapa Authentication Bypass Bisa Terjadi?
Secara konsep, aplikasi login seharusnya memperlakukan username dan password sebagai data yang akan dibandingkan dengan database. Jika input pengguna langsung digabungkan ke dalam query SQL, struktur query dapat berubah ketika input mengandung karakter atau logika SQL tertentu.
Pada pengujian LabKeu, respons SQL syntax error menjadi indikasi bahwa input username masuk ke dalam proses query. Ketika input manipulasi berhasil menghasilkan redirect ke dashboard walaupun password salah, dapat disimpulkan bahwa proses autentikasi pada endpoint tersebut tidak memisahkan input pengguna dari struktur query SQL dengan aman.
❓ Apa Dampak dari SQL Injection Ini?
Dampak yang berhasil dibuktikan pada pengujian adalah authentication bypass. Penguji dapat memperoleh akses ke dashboard menggunakan username yang dimanipulasi sementara password yang dikirimkan salah.
Jika kerentanan seperti ini terdapat pada aplikasi nyata, kemampuan melewati autentikasi dapat menjadi masalah serius karena mekanisme login merupakan salah satu lapisan utama yang membatasi akses pengguna.
⚠️ Catatan: artikel ini hanya menyimpulkan dampak yang benar-benar berhasil dibuktikan selama pengujian. Tidak ada klaim tambahan seperti pengambilalihan seluruh database apabila hal tersebut tidak diuji.
❓ Bagaimana Cara Mencegah SQL Injection?
Perbaikan utama adalah memastikan input pengguna tidak digabungkan secara langsung ke dalam query SQL. Developer sebaiknya menggunakan prepared statement atau parameterized query sehingga data pengguna diperlakukan sebagai data, bukan sebagai bagian dari struktur SQL.
🛡️ Rekomendasi Perbaikan
- Gunakan prepared statement atau parameterized query.
- Validasi input username dan password sesuai kebutuhan aplikasi.
- Jangan menampilkan SQL error secara langsung kepada pengguna.
- Gunakan pesan error autentikasi yang umum.
- Lakukan pengujian keamanan pada seluruh endpoint login, bukan hanya satu jalur.
- Hapus atau amankan endpoint login lama yang tidak lagi diperlukan.
❓ Apa yang Bisa Dipelajari dari Pengujian Ini?
Pengujian SQL Injection pada LabKeu menunjukkan bahwa satu aplikasi dapat memiliki perilaku keamanan yang berbeda pada endpoint yang berbeda. Karena itu, penetration testing tidak cukup hanya mencoba satu payload lalu menyimpulkan kondisi seluruh aplikasi.
Dalam pengujian ini, proses dimulai dari memahami jalur login, melakukan login normal sebagai baseline, mengamati respons ketika input menyebabkan SQL error, kemudian membuktikan apakah masalah tersebut benar-benar berdampak terhadap autentikasi. Hasil akhirnya menunjukkan bahwa /login-noportal memiliki SQL Injection yang dapat menyebabkan authentication bypass berdasarkan pengujian yang dilakukan.
✅ Kesimpulan
Pengujian terhadap aplikasi LabKeu menemukan SQL Injection pada endpoint /login-noportal. Kerentanan dibuktikan melalui munculnya SQL syntax error ketika input dimanipulasi dan kemudian diperkuat dengan authentication bypass menggunakan password yang salah.
Perbandingan dengan endpoint /login juga menunjukkan bahwa hasil pengujian tidak dapat digeneralisasikan ke seluruh jalur login. Pada pengujian yang dilakukan, /login tidak menunjukkan bypass yang sama, sedangkan /login-noportal terbukti dapat dipengaruhi oleh SQL Injection.
🔐 Ringkasan Temuan
✓ Temuan: SQL Injection
✓ Lokasi: /login-noportal
✓ Indikasi: SQL syntax error
✓ Dampak terbukti: authentication bypass
✓ Perbandingan: /login tidak menunjukkan bypass yang sama
✍️ Penulis: Noviana Putri Yuliani
Mau Kuasai SQL Injection Aplikasi Web: Login vs Login-noportal Sampai Bisa Praktik Langsung?
Materi ini juga kami ajarkan langsung di kelas Edusoft Center, dibimbing mentor, sampai kamu bisa praktik nyata — bukan cuma baca teori.
Tanya Kursus via WhatsApp Lihat contoh project nyata dari siswa kami →
