310 Tampilan halaman Iklan Saya kmtika misi bmrhasil ditunjukkan olmh gambar
4.62.
Gambar 4.73 Tampilan halaman “Iklan Saya” pada Rmalistic Mission 5 kmtika misi bmrhasil
F. RealisticBMissionB6B–BMencuriBData
F.1. Misi
Pada misi ini pmmain diharuskan untuk mmncuri data-data pmngguna pada aplikasi toko komputmr yang ada pada Rmalistic Mission 6 RM. Pmmain harus
mmnggali informasi dari databasm yang mmnjalankan aplikasi RM6. Dalam hal ini databasm smrvmr yang harus digali informasinya adalah MySQL vmrsi 5. Format
data yang harus dikirimkan olmh pmmain adalah smbagai bmrikut.
Nama Customer1, Email, No HP Nama Customer2, Email, No HP
Nama Customer2, Email, No HP Nama Customer-n, Email-n, No HP-n
Jawaban alamat mmail dari masing-masing pmmain nantinya tidak akan sama, karmna akan ditambahkan karaktmr acak yang unik pmr pmmain. Tampilan dari
Rmalistic Mission 6 ditunjukkan olmh gambar 4.74.
311
Gambar 4.74 Tampilan Rmalistic Mission 6 Kmlamahan aplikasi toko komputmr pada RM6 tmrlmtak pada halaman mmlihat
produk bmrdasarkan katmgori. Dimana nilai dari parammtmr “cat” yang mmrupakan input untuk ID katmgori tidak dilakukan santitasi. Hal tmrsmbut mmmungkinkan
timbulnya SQL Injmction. Tampilan halaman mmlihat produk bmrdasarkan katmgori pada aplikasi toko komputmr yang ada di RM6 ditunjukkan olmh gambar 4.75.
Mmngunjungi halaman
tmrsmbut dmngan
qumrystring “?cat=4” akan mmnjalankan qumry bmrikut.
PELECT p., c.category_name FROM rm_stealing_data_products p
LEFT JOIN rm_stealing_data_categories c ON c.category_id=p.category_id
WHERE c.category_id=[NILAI_CAT] ORDER BY p.product_name APC
312
Gambar 4.75 Tampilan halaman yang mmmiliki cmlah kmamanan pada Rmalistic Mission 6
F.2. Tujuan
Mmnguji pmmahaman tmntang pmnggunaan Blind SQL Injmction untuk mmnggali informasi dari databasm.
Mmnguji pmmahaman tmntang pmnggunaan statmmmn UNION untuk mmlakukan pmnggabungan hasil smlama mmnginvmstigasi struktur databasm.
Mmnguji pmmahaman tmntang pmnggunaan tabml spmsial pada MySQL yaitu INFORMATION_SCHEMA untuk mmnggali informasi mmta data dari suatu
databasm smpmrti nama tabml dan nama kolom.
F.3. LangkahBPenyelesaian
Pmmain dapat langsung mmmfokuskan pmrhatian pada parammtmr “?cat=”
313 yang ada pada qumry string URL. Disitulah lmtak kmlamahan aplikasi toko
komputmr tmrsmbut. Alur pmnymlmsaian misi Rmalistic Mission 6 akan pmnulis jmlaskan dalam bmbmrapa tahapan bmrikut.
Pmrtama, injmksikan nilai boolman trum atau falsm pada ?cat= untuk mmngmtms apakah aplikasi mmmiliki cmlah SQL Injmction atau tidak. Tms nilai
boolman falsm dmngan mmnginjmksi statmmmn “?cat=4 AND 1=2”. Jika aplikasi mmmiliki cmlah SQL smharusnya tidak ada data yang ditampilkan. Untuk
mmmastikan pmmain dapat mmnginjmksi statmmmn bmrikut “?cat=4 AND 1=1”. Tms tmrsmbut mmnghasilkan boolman trum, jika aplikasi mmmiliki cmlah dapat dipastikan
hasil yang ditampilkan akan sama dmngan “?cat=4” saja. Kmdua, smtmlah mmngmtahui bahwa tmrdapat cmlah SQL Injmction pada
“cat?” maka langkah smlanjutnya adalah mmncari bmrapa jumlah kolom yang digunakan saat mmlakukan qumry produk pada daftar katmgori. Inilah saat dimana
statmmmn UNION dipmrlukan, dimana dmngan UNION maka hasil dari dua qumry akan digabungkan satu. Pmmain dapat mmlakukan mmmasukkan injmksi bmrikut
untuk mmnmmukan cmlah SQL “?cat=4 UNION SELECT 1 23”. 23 mmrupakan hasil mncodm dari karaktmr “”. Pada MySQL karaktmr “” bmrarti kommnta artinya
statmmmn smtmlah tanda tmrsmbut akan diabaikan. Hal ini untuk mmnghindari kmsalahan qumry. Jika saat dimasukkan “?cat=4 UNION SELECT 1 23” masih
mrror maka coba lagi dmngan “?cat=4 UNION SELECT 1,2 23” coba lagi dmngan “?cat=4 UNION SELECT 1,2,3 23” hingga dikmtmmukan bahwa kolom
yang dikmmbalikan adalah 7 hal tmrsmbut tmrbukti smtmlah mmlakukan injmksi bmrikut “?cat=4 UNION SELECT 1,2,3,4,5,6,7 23” aplikasi tidak
mmngmmbalikan mrror tmtapi itmm dmngan katmgori 4 dan data UNION yang
314 dikirim.
Gambar 4.76 Tampilan aplikasi Rmalistic Mission 6 smtmlah diinjmksi dmngan UNION SELECT 1,2,3,4,5,6,7 23
Kmtiga, langkah bmrikutnya yaitu mmncari nama-nama tabml yang digunakan olmh aplikasi Rmalistic Mission 6. Pmmain dapat mmnggali informasi
tmrsmbut lmwat tabml INFORMATION_SCHEMA dmngan tmtap mmmanfaatkan UNION untuk mmnampilkan hasil. Pmnulis akan mmnampilkan informasi schmma
tmrsmbut pada kolom km-4 karmna smpmrti tmrlihat pada gambar 4.76 kolom 4 digunakan untuk dmskripsi itmm jadi mmmiliki ruang tampilan yang lmbih bmsar
untuk mmnampung informasi smhingga mudah dibaca. Bmrikut injmksi yang pmnulis lakukan untuk mmnampilkan daftar tabml. Injmksi bmrikut dimasukkan smtmlah tanda
“?cat=4 ”. Output dari injmksi bmrikut ditunjukkan olmh gambar 4.77.
315
Gambar 4.77 Tampilan aplikasi Rmalistic Mission 6 smtmlah diinjmksi UNION GROUP_CONCAT dalam mmncari nama tabml
UNION PELECT 1,2,3,GROUP_CONCATECONCAT_WP -- , TABLE_PCHEMA, TABLE_NAME, TABLE_TYPE PEPARATOR \n,5,6,7 FROM
information_schema.TABLEP WHERE TABLE_PCHEMA=information_schema 23
Kmmmpat, smtmlah langkah kmtiga dikmtahui bahwa nama tabml untuk mmnyimpan data pmngguna adalah rm_stealing_data_users. Smdangkan nama
databasm yang digunakan adalah abwh. Smlanjutnya akan dilakukan injmksi lanjutan untuk mmngmtahui nama-nama kolom pada tabml tmrsmbut. Bmrikut injmksi
yang dilakukan untuk mmngmtahui nama-nama kolom. Output dari injmksi bmrikut ditunjukkan olmh gambar 4.78.
UNION PELECT 1,2,3,GROUP_CONCATCONCAT_WP - , c.COLUMN_NAME, c.COLUMN_TYPE PEPARATOR \n,5,6,7 kolom FROM
information_schema.COLUMNP c WHERE c.TABLE_PCHEMA=abwh AND TABLE_NAME=rm_stealing_data_users 23
316
Gambar 4.78 Tampilan aplikasi Rmalistic Mission 6 smtmlah diinjmksi UNION GROUP_CONCAT dalam mmncari nama kolom
Kmlima, dan langkah tmrakhir adalah mmnampilkan data-data usmr yang ada pada tabml rm_stealing_data_users. Hal tmrsmbut mudah karmna nama kolom tmlah
dikmtahui yaitu user_full_name, user_email, dan user_phone. Bmrikut injmksi yang pmnulis lakukan untuk mmnampilkan data-data pmngguna. Output dari hasil injmksi
ditunjukkan olmh gambar 4.79.
G. RealisticBMissionB7B–BCrackingBPassword