Bitlab Developers
  • Introduction
  • 🐧Linux
    • Perkenalan Linux
    • DVWA: Install On Kali Linux
    • MYSQL: Kali Linux
    • How To Add Apps In Kali Linux
    • Initial Linux Installation
    • Linux: Fundamentals
    • Linux: Privilege Escalation
  • 💾HackLovers ID
    • Penestration Testing
    • Check Kerentanan Manual
    • Security Models
    • Pentesting Fundamentals
    • Metodologi Hacking
      • Metodologi By Anonputraid
    • Scope Penestration
    • Pengumpulan Informasi
    • 📑Learning Path !
  • SQL Injection
    • Perkenalan SQL-Injection
    • Examining the Database
    • Cheat Sheet
    • Union Attack
    • Subverting application logic
    • Retrieving Hidden Data
    • Blind vulnerabilities
      • Blind SQL-Injection: Triggering Conditional Responses
      • Blind SQL injection: Triggering Time Delays
      • Blind SQL Injection: Triggering SQL Errors
      • Blind SQL injection: Out Of Band (OAST)
  • ⚡Networking
    • Network Fundamental
  • Burp-Suite
    • Burp Suite: List
    • Burp Suite: Profesional Install
    • Burp Suite: The Basic
      • Burp Suite: What is Burp Suite?
      • Burp Suite: How To install
      • Burp Suite: The Dashboard
      • Burp Suite: Navigation
      • Burp Suite: Introduction to the Burp Proxy
      • Burp Suite: Connecting through the Proxy (FoxyProxy)
      • Burp Suite: Proxying HTTPS
      • Burp Suite: The Burp Suite Browser
      • Burp Suite: Scoping and Targeting
      • Burp Suite: Site Map and Issue Definitions
      • Burp Suite: Example Attack
    • Burp Suite: Repeater
      • Burp Suite: What is Repeater?
      • Burp Suite: Basic Usage
      • Burp Suite: Inspector
      • Burp Suite: Views
      • Burp Suite: Challenge
      • Burp Suite: SQLi with Repeater
    • Overview of Burp Suite
      • 📋Burp Suite: Anonputraid Tips
        • Burp Suite: Cross-Site Scripting
  • 🤖Hackthebox
    • Pekernalan Hackthebox
    • Hackthebox Machines
    • Tips & Trick
      • Basic Web Enumeration
      • SSRF & CRLF Attacks
      • Metasploit MsfVenom Apk
      • HashCat: Rules Type Base64
      • Forensic Knowledge
      • Gitlab Laboratory
      • Proxychains & DNS
  • Tryhackme
    • Perkenalan Try Hack Me
    • Learning Path
  • 🖥️Mac Os
    • Catalina Tools
      • Visual Studio Code
    • Dual Boot Kali Linux On Mac
    • How To Change Theme Refind
    • How To Remove Refind
    • Tips to Beautify Terminal
    • Macos For Hacking
    • How To Change Icon Macos
  • Pascal
    • Learning Path
    • Struktur Program Pascal
      • Judul program
      • Bagian Pernyataan/Terproses
      • Bagian Deklarasi
        • Deklarasi prosedur dan Fungsi
        • Deklarasi variabel/perubah
        • Deklarasi Tipe
        • Deklarasi Label
        • Deklarasi Konstanta
    • The Basic
      • Tipe Data
        • Tipe Data standar
          • Tipe Data Integer
          • Tipe data real
          • Tipe Data Karakter
          • Tipe Data String
          • Tipe Sata Boolean
        • Tipe Data Terdefinisi
          • Tipe Data Subjangkauan
          • Tipe Data Terbilang
          • Tipe Data Larik (array)
          • Tipe data record dan file
      • Statemen-statemen
        • Reserved Word
      • Perintah Perintah
        • Statemen Input/output
          • Read/readln(Prosedur)
          • ReadKey(fungsi)
          • Write/writeln(prosedur)
        • Statemen Pengaturan Letak Di Layer
          • Clrscr(prosedur)
          • Gotoxy(prosedur)
          • Delline(prosedur)
          • Insline(prosedur)
          • Delay(prosedur)
        • Statemen Memanipulasi String
          • Concat(fungsi)
          • Copy(fungsi)
          • Delete(prosedur)
          • Insert(Prosedur)
          • Length(fungsi)
          • Pos(fungsi)
          • Str(prosedur)
          • Val(prosedur)
          • Upcase(fungsi)
        • Statemen Perhitungan Aritmatik
          • Abs(Fungsi)
          • Arctan(fungsi)
          • Cos(fungsi)
          • Exp(fungsi)
          • Frac(fungsi)
          • Int(fungsi)
          • LN(fungsi)
          • Sin(fungsi)
          • Sqr(fungsi)
          • SQRT(fungsi)
        • Statemen Transfer Nilai Dari Suatu Variable
          • Chr(fungsi)
          • Ord(fungsi)
          • Round(fungsi)
          • Trunc(fungsi)
        • Statemen Memanipulasi Data
          • Pred(fungsi)
          • Succ(fungsi)
          • INC(fungsi)
          • DEC(fungsi)
        • Statemen Tambahan (warna,suara dan window)
          • Sound(prosedur)
          • TextMode(prosedur)
          • Window(prosedur)
          • Textbackground(prosedur)
          • TextColor(prosedur)
      • Bentuk Perulangan
        • Perulangan FOR
          • Perulangan FOR negatif
          • Perulangan FOR positif
          • Perulangan FOR tersarang
        • Perulangan WHILE-DO
      • Record
        • Deklarasi Record
        • Statemen with
        • Record Dalam Array
        • Field Record Bertipe Array
        • Tipe Data Record Dengan Field Tipe Record
      • Procedure
        • Template Latihan Proseduce
        • Parameter Dalam Procedure
        • Pengiriman parameter Secara Nilai
        • Pengiriman Parameter Secara Acuan (By Reference)
        • Procedure Memanggil Procedure Yang Lain
        • Procedure Tersarang
        • Procedure Memanggil Dirinya Sendiri (Rekursi)
      • Function
        • Rekursi Pada Function
        • Parameter Nilai Dalam Function
        • Function Dengan Parameter Acuan
        • Function tanpa parameter
      • File Teks
        • Membuat File Teks
        • Deklarasi File Teks
        • Pernyataan Rese
        • Pernyataan Rewrite
        • Pernyataan Close
      • File Binary
      • Pascal Library
        • Free Pascal Game
        • SDL: Simple DirectMedia Layer
          • SDL: Language Bindings
        • How To Install ?
      • Pascal Examples
        • Pascal Exercises
          • Exersices 1
          • Exersices 2
          • Exersices 3
          • Exersices 4
        • Pascal Quiz
          • Question 1
      • Perkenalan Pascal
  • Dart Programming
    • Install Dart On Linux
  • ⚙️Technical
    • Pengantar Sistem Informasi
    • Perkenalan UEFI & Legacy
  • Git Dan Github
    • Download Git & Setting
    • Membuat Portofolio GitHub
  • Xampp
    • Error Mysql Xampp
Powered by GitBook
On this page
  • Retrieving data from other database tables
  • Tips And Trick Union:
  • Cara Memecahkan Berapa Jumlah Colom Table Utama ?
  • The SQL Order By Keyword
  • Union Select Null Values
  • Bagaimana Cara Menemukan Hasil Query Yang Disuntikan ?
  • SQL-Injection: UNION attack Interesting Data:
  • Retrieving multiple values within a single column

Was this helpful?

  1. SQL Injection

Union Attack

Author: Anonputraid

Retrieving data from other database tables

Jika Aplikasi Menjalankan Kueri Berikut Yang Berisi Input Pengguna "Gift":

 SELECT name, description FROM products WHERE category = 'Gifts' 

Maka Penyerang Dapat Mengirimkan Input:

 ' UNION SELECT username, password FROM users-- 

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:

 SELECT a, b FROM table1 UNION SELECT c, d FROM table2 

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 :

SELECT * FROM Table1
ORDER BY 3;

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:

 ' UNION SELECT NULL,NULL,NULL--

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:

' UNION SELECT 'a',NULL,NULL,NULL--
' UNION SELECT NULL,'a',NULL,NULL--
' UNION SELECT NULL,NULL,'a',NULL--
' UNION SELECT NULL,NULL,NULL,'a'--

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.

' UNION SELECT NULL,NULL,'a',NULL--

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.

SELECT a, b FROM administrator

Anggap Saja Sekarang Kita Berada Didalam Table Administrator. Kita Bisa Menggunakan UNION untuk Mengambil Table Lain Secara Bersamaan Dengan Table Utama.

SELECT a, b FROM administrator UNION SELECT username,password from users --

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.

 ' UNION SELECT username || '~' || password FROM users-- 

Maka Server Akan Mengembalikan Nilai Seperti Berikut:

administrator~s3cure
wiener~peter
carlos~montoya

Last updated 2 years ago

Was this helpful?