Cara Melakukan SQL Injection Manual Menggunakan Teknik UNION
Cara Melakukan SQL Injection Manual Menggunakan Teknik UNION. kali ini saya mau sharing tentang cara melakukan SQL injection manual pada website yang rentan terhadap serangan SQL Injection. Anggap saja ini biar kita paham dengan konsepnya, meskipun saat ini kalian bisa melakukan injeksi menggunakan tools seperti SQLmap atau Havij. Oh iya, di tutorial ini yang akan saya bahas adalah sql injection manual yang dasar banget. Jadi gak ada firewall di server target, jadi gak perlu bypass waf. Baik, langsung saja akan saya jelaskan langkah-langkah nya.
Langkah 1 – Mengkonfirmasi Kerentanan
Pertama, kita pastikan dulu webnya rentan terhadap SQL Injection. Untuk mengkonfirmasi webnya rentan apa gak, kita cukup menginputkan tanda petik satu ( ‘ ). Jika muncul error, berarti website tersebut vulnrable. Ini dikarenakan website tersebut tidak memfilter input dari URL sehingga petik satu ( ' ) yang kita masukkan di URL masuk ke dalam query SQL dan dijalankan di sisi server. Dalam tutorial kali ini saya akan mempraktekkan pada aplikasi yang sudah saya buat sendiri sehingga kita dapat membuka source code nya untuk bahan pembelajaran. Silahkan download source code nya disini
Link Download Vulnerable App SQL Injection.
Link tersebut mengarah ke github saya, Jangan lupa start nya yaa h3h3. Untuk cara menginstall nya sudah pernah saya bahas pada tutorial sebelumnya yaitu SQL Injection Tutorial - Bypass Admin Login. Silahkan bagi yang belum membaca dibaca dulu atau yang ingin tutorial cara install aplikasi nya bisa dilihat disitu. Untuk penempatan tanda petik satu ( ' ) bisa diletakkan setelah value GET Parameter pada URL, misal ?id=1, &idBerita=4, dll. Hal ini dikarenakan biasanya programmer akan mengambil data yang ada di database menggunakan id yang di input kan pada URL website sehingga jika tidak di filter dengan benar value pada GET Parameter tersebut akan mempengaruhi Query saat mengambil data. Selengkapnya, lihat Screenshot dibawah.
Langkah 2 – Menentukan Jumlah Kolom
- Payload : 1' ORDER BY 1 -- ok --> tidak error
- Payload : 2' ORDER BY 1 -- ok --> tidak error
- Payload : 3' ORDER BY 1 -- ok --> tidak error
- Payload : 4' ORDER BY 1 -- ok --> error
Langkah 3 - Menemukan Injectable Column
Pada Payload, kita memasukkan angka 1,2,3 yang jumlahnya harus disesuaikan dengan jumlah kolom yang sudah kita dapatkan sebelumnya. Ingat ya, jumlahnya bukan isinya, kalau isinya boleh saja dirubah misal : 3,5,1 yang penting disitu kita memasukkan 3 nilai. Disini saya menggunakan 1,2,3 untuk mempermudah saja dalam menentukan kolom keberapa yang injectable. Hasilnya :
Langkah 4 - Saatnya 'bermain'
' UNION SELECT 1,@@version,user() ORDER BY 2 ASC LIMIT 1 -- ok
Hasil :
- @@version — menampilkan Versi database
- user() — menampilkan Nama User database
- @@hostname — menampilkan Hostname
- @@tmpdir — menampilkan Direktori temp
- @@datadir — menampilkan Direktori data
- @@basedir — menampilkan Direktori base
- database() — menampilkan Nama Database
- schema() — menampilkan Database yang dipakai
- session_user() — menampilkan Session User
'UNION SELECT 1,group_concat(table_name),user() from information_schema.tables where table_schema=database() -- ok
Di payload ini saya menghilangkan ORDER BY dan LIMIT nya agar payload tidak terlalu panjang. Namun berita aslinya akan muncul, nah disini kalian bisa ubah id=1 menjadi id=9999 atau berapapun yang id tersebut tidak mungkin berada di database sehingga data asli berita tidak muncul. Hasil :
Nah disitu muncul semua nama tabel yang ada pada database tersebut, untuk pengambilan data selanjutnya kalian bisa 'bermain' di Payload Query SQL yang sudah saya jabarkan diatas, Terimakasih.
Posting Komentar untuk "Cara Melakukan SQL Injection Manual Menggunakan Teknik UNION"
Harap berkomentar yang baik demi kenyamanan bersama. Terimakasih :)