Union Attack
Author: Anonputraid
Retrieving data from other database tables
Jika Aplikasi Menjalankan Kueri Berikut Yang Berisi Input Pengguna "Gift":
Maka Penyerang Dapat Mengirimkan Input:
Query Ini Akan Menyebabkan Aplikasi Mengembalikan Semua Nama Pengguna Dan Kata Sandi Bersama Dengan Nama Dan Deskripsi Produk.
Inilah Definisi Sederhana Tentang Penggunaan Union Sebagai Serangan Mengambil Data Dari Table Database Lain.
Dengan Menggunakan Union Kita Juga Bisa Menggunakan Satu Atau Lebih Query SQL Select.
Sebagai Contoh:
Union Query Tersebut Akan Menghasil Kan Satu Set Hasil Dengan Dua Colomn Dari Table1/Table2
Tips And Trick Union:
Dalam Penggunaan Union Ada Beberapa Syarat Agar Query Berhasil:
Query Utama Harus Mengembalikan Colomn Yang Sama.
Tipe Data Disetiap Colomn Harus Kompetible Antara Query Individual
Untuk Memastikan Apakah Aplikasi Bisa Di Serang Menggunakan Teknik Union, Ada Beberapa Pertanyaan Yang Harus Anda Pecahkan:
Berapa Banyak Colomn Yang Dimiliki Table Utama ?
Colomn Mana Yang Mengembalikan Hasil Query Yang Disuntikan ?
Berikut Kita Akan Memecahkan Pertanyaan Tersebut:
Cara Memecahkan Berapa Jumlah Colom Table Utama ?
Saat Melakukan Serangan Union Injeksi SQL, Ada Dua Metode Efektif Untuk Menentukan Berapa Banyak Colomn Yang Dikembalikan Dari Query Utama.
The SQL Order By Keyword
Metode 1 Adalah Menggunakan Perintah Query Order By . Perintah Query Order By Pada Dasar Nya Digunakan Untuk Mengurutkan Hasil-set Dalam Menaik Atau Urutan Menurun. Nah Dengan Begitu Order By Juga Bisa Dimanfaat Kan Untuk Memeriksa Ada Berapa Banyak Colomn Pada Hasil Query Yang Dikembalikan.
Sebagai Contoh, Ketika Anda Mengirim :
Query Tersebut Jika Dibaca, Urutkan Hasil Query Table1 Dari Column 3 Pada Table1. Jika Table1 Hanya Memiliki 2 Column, Sedangkan Hasil-set Diurut Pada Angka 3. Maka Server Akan Mengembalikan Pesan Error. Dikarnakan Column Pada Table1 Hanya Memiliki 2 Column. Pesan Kesalahan Bisa Seperti Berikut:
The ORDER BY position number 3 is out of range of the number of items in the select lis
Dengan Penjelasan Ini, Semoga Teman Teman Paham, Aplikasi Mungkin Benar-benar Mengembalikan Pesan Kesalahan Basis Data Dalam Respons Http-nya, Atau Mungkin Mengembalikan Kesalahan Umum, Atau Bisa Jadi Tidak Mengembalikan Hasil Apa Pun.
Inti Dalam Menggunakan Teknik Serangan Union, Ada Harus Dapat Mendeteksi Berapa Banyak Column Yang Dimiliki Oleh Table Pada Database Target, Jika Anda Berhasil, Anda Akan Mendapatkan Kerentanan Tersebut.
Union Select Null Values
Metode 2 Anda Bisa Menggunakan Nilai Null. Apa Itu Null ? Sederhana Nya Bidang Dengan nilai NULL Adalah Bidang Tanpa Nilai. Namun Nilai Null Berbeda Dari Nilai Nol Atau Bidang Yang Berisi Spasi. Bidang Dengan Nilai Null Adalah Bidang Yang Dibiarkan Kosong Selama Pembuatan Rekaman!
Dengan Begitu Kita Bisa Menebak Ada Berapa Column Pada Table Utama Target:
Seperti Biasa, Jika Jumlah Null Melebihi Dari Jumlah Colomn Yang Dimiliki Table, Maka Server Akan Mengembalikan Pesan Kesalahan.
Sekali Lagi, Aplikasi Mungkin Benar-benar Mengembalikan Pesan Kesalahan Basis Data Dalam Respons Http-nya, Atau Mungkin Mengembalikan Kesalahan Umum, Atau Bisa Jadi Tidak Mengembalikan Hasil Apa Pun.
Bagaimana Cara Menemukan Hasil Query Yang Disuntikan ?
Sebelumnya Admin Belum Menjelaskan Kenapa Sih Kita Menggunakan Union ? Jawaban Nya Adalah Agar Kita Mendapatkan Langsung Data Hasil Dari Query Yang Disuntikan. Maksud Nya ?
Oke,Disini Admin Akan Menjelaskan Secara Rinci, Setelah Kita Menemukan Jumlah Colum Pada Table Target. Hal Yang Kita Tunggu Adalah Memeriksa Data Pada Setiap Column Didalam Table Tersebut ? Seperti Hal Nya Table Users. Memiliki Column Username, Dan Password. Nah Data Seperti Inilah Yang Admin Cari BosQ.
Nah, Untuk Memeriksa Column Mana Yang Bisa Digunakan Untuk Menampung String Data, Yang Akan Kita Keluarkan. Adalah Dengan Cara Mengirim Query Seperti Berikut:
Oke, Admin Akan Jelasin Satu2, Coba Anda Masukan String 'a', Pada Setiap NULL Seperti Contoh Diatas, Secara Bergantian !. Dan Coba Anda Lihat, Bagian Column Mana Yang Tidak Menampilkan Pesan Keselahan. Jika Semisalnya Pada Bagian Colom 3.
Tidak Menampilkan Pesan Error Ketika Query Dikirim Kedalam Server, Maka Bisa Dipastikan Bahwa Column 3 Bisa Menampung Data String. Pesan Kesalahan Bisa Berupa Berikut:
Conversion Failed When Converting The Varchar Value 'a' To Data Type Int.
SQL-Injection: UNION attack Interesting Data:
Setelah Semua Pertanyaan Sudah Kita Pecahkan, Dan Akhir Nya Kita Masuk Kepembahasan Cara Mengambil Data Pada Table Target. Haha
Seperti Yang Sudah Admin Jelaskan Sebelum nya Ada Syarat Untuk Mengambil Data Pada Table Target Yaitu:
Anda Mengetahui Berapa Jumlah Colum Pada Table
Anda Menemukan Column Yang Bisa Menampung Data String !
Nah Jika Syarat Tersebut Sudah Terpenuhi Barulah Kita Mengambil Data Didalam Table Tersebut Menggunakan Perintah Query SQL. Berikut Ini Adalah Contoh Mengambil Data Ditable Lain Kita Anggap Saja Table Users
Yang Berisikan Password Dan Username.
Anggap Saja Sekarang Kita Berada Didalam Table Administrator. Kita Bisa Menggunakan UNION untuk Mengambil Table Lain Secara Bersamaan Dengan Table Utama.
Dengan Begitu Server Akan Menampilkan Isi Colom Dari Username Dan Password, Beserta Isi colomn Dari Table Administator.
Retrieving multiple values within a single column
Anda Juga Bisa Mengambil Banyak Data Menggunakan Satu Colom, Anggap Saja, Table Tersebut Memiliki 2 Colom, Setelah Kita Melakukan Pengujian, Ternyata Salah Satu Colom Bisa Menampung Data String, Dengan Begitu, Kita Bisa Memasukan Perintah Berikut.
Maka Server Akan Mengembalikan Nilai Seperti Berikut:
Last updated
Was this helpful?