Lompat ke konten Lompat ke sidebar Lompat ke footer

SQL Injection Tutorial - Bypass Admin Login

SQL Injection Tutorial Part 1:Bypass Admin Login / User Authentication - Di postingan sebelumnya , kita sudah membahas pengertian atau dasar tentang SQL (Structured Query Language). Nah sekarang kita akan membahas bagaimana cara melakukan SQL Injection itu sendiri dalam hal ini kita akan memanfaatkan bug tersebut untuk mem-bypass atau melewati user authentication, bisa admin login, user login dll. Untuk bahan praktek nya, saya sudah menyediakan sebuah web aplikasi tentang berita yang bisa anda download disini:

Link download web aplikasi berita

Disini saya menggunakan web aplikasi buatan saya sendiri untuk melakukan praktek SQL Injection ini. Teman teman bisa menggunakan aplikasi sendiri atau menggunakan aplikasi yang sudah saya sediakan diatas untuk mempermudah proses pembelajaran dan dapat mengikuti tutorial yang saya buat ini. Berikut akan saya berikan tutorial atau cara melakukan SQL Injection.

Instalasi Web App

Download Source Code

Untuk yang menggunakan aplikasi yang sudah saya sediakan diatas, silahkan download terlebih dahulu lalu extrak file nya ke dalam folder htdocs kalian bagi yang menggunakan XAMPP atau ke folder aplikasi web masing" untuk yang menggunakan software" lain (disesuaikan saja). Setelahnya, jalankan web server anda, disini saya menggunakan apache2 & mysql dan menggunakan software XAMPP. Di tahap ini kita sudah bisa mengakses website di http://localhost/berita/ namun karna database nya belum di import maka masih ada error seperti gambar berikut:
SQL Injection Tutorial - Instalasi Web App

Import Database 

Setelah aplikasi sudah dijalankan dan muncul tampilan seperti diatas, saatnya kita import database nya. Pertama buat database bernama berita. Disini saya menggunakan phpmyadmin untuk mempermudah mengelola database mysql nya.
SQL Injection Tutorial - Import Database

Lalu klik import -> choose file -> upload file .sql yang sudah saya sediakan di dalam folder aplikasi, setelah import selesai, lalu ubah konfigurasi pada file config.php di dalam aplikasi yang sudah di download. Sesuaikan host, user mysql, password mysql dan database mysql milik kalian.

SQL Injection Tutorial - Konfigurasi Koneksi Database


Setelah selesai, kalian bisa menggunakan aplikasi tersebut. Ada beberapa vulnrability disana karna semua input atau output belum saya filter, di kesempatan kali ini kita hanya akan membahas SQL Injection nya saja dan fokus di bypass admin loginnya.

Cara Melakukan SQL Injection

Untuk cara melakukan serangan SQL Injection pada aplikasi website tadi, kalian bisa akses halaman adminnya di http://localhost/berita/admin.php. Disana akan muncul tampilan login admin seperti gambar dibawah, halaman tersebut lah yang akan kita coba serang untuk kali ini.
SQL Injection Tutorial - Akses Halaman Admin
Disini, asumsinya kita sudah mengetahui username(admin) tapi tidak mengetahui password admin, bagaimana cara agar kita tetap bisa login walaupun tidak mengetahui passwordnya ? nah disini lah bug SQL Injection bisa dimanfaatkan untuk mem-bypass login adminnya. 
Sekarang masukkan payload seperti berikut
SQL Injection Tutorial - Payload SQL Injection Bypass Admin Login

Penjelasan

Pada inputan username kita memasukkan payload "admin' -- " yang "admin" berasal dari username admin yang sudah kita ketahui sebelumnya dan tanda petik setelahnya berguna untuk memanipulasi query SQL pada saat proses login sebagai penutup inputan agar seolah-olah isi inputan sudah ditutup dan "-- " adalah komentar dalam mysql yang berarti query selanjutnya akan diabaikan dan tidak dijalankan dalam hal ini query selanjutnya adalah pengecekan password sehingga, seolah-olah password tidak di cek dan yang di cek hanya username saja, oleh karena itu kita berhasil masuk ke dalam sistem dan login sebagai admin. 
Nah itukan posisinya kita tahu username nya tanpa tahu passwordnya, bagaimana jika kita tidak tahu username dan password tapi masih ingin bisa login? nah jika ada bug SQL Injection ini kita juga bisa login walaupun tanpa menggunakan username dan passwordnya. Nah caranya adalah kita cukup meletakkan payload "blabla' OR 1=1 -- " pada username nya, dan passwordnya bisa diisi asal saja.

Penjelasan

di username kita menuliskan string 'blabla' dimana itu sebenarnya bisa diisi asal saja lalu diikuti dengan tanda petik sebagai penutup input tersebut agar kita bisa memasukkan query SQL setelahnya.Nah pada "OR  1=1 -- " pentingnya, karna string 'blabla' yang kita masukkan tadi salah (tidak ada user yg memiliki username 'blabla') otomatis hasilnya false. Cara mengatasinya adalah kita memasukkan keyword 'OR' dimana 'OR' berarti jika diantara 2 statement salah satunya benar maka keduanya dianggap benar, berarti disini karna username 'blabla' tidak ada dan menghasilkan nilai false maka kita meletakkan statement yang sudah pasti benar setelahnya agar keduanya jadi dianggap benar yaitu 1=1 karna yaa 1 pasti sama dengan satu kan? dan kita tutup dengan keyword untuk komentar di mysql agar query setelahnya tidak dijalankan dam hasilnya boom berhasil login :D.
Oke itu saja artikel tentang SQL Injection Tutorial - Bypass Admin Login dari saya, Selanjutnya akan saya bahas cara mengatasinya untuk website yg menggunakan bahasa program PHP, semoga bermanfaat.

1 komentar untuk "SQL Injection Tutorial - Bypass Admin Login"