💉sql injection
by replican
Cheatsheet sql injection
Pembahasaan Sql Injection dari basic sampai advanced
Pembahasan basic nosqlinjection seperti mongodb , cassandra , graphql dan banyak lagi
List cheatshee sql maupun nosql seperti syntax2 yang sering digunakan dan juga tools yang sering digunakan
SQL Injection
Basic SQL Injection Retreive Data on Another Tables
pada materi ini akan dibahas sql injection pada select statement
example easy vulnerable code :
Jadi txtUserId Langsung di input pake + tanpa di filter terlebih dahulu
Jadi kita bisa mengleak semua id / table lain bahkan bisa sampai rce jika mysql nya memiliki permission ( into outfile )
Misal kita disuruh leak username dan password dari table Users nya jadi payloadnya adalah
pertama kita cek total tablesnya agar bisa meng enumerate nama db,table dll buat mengquerynya
dalam materi dibawah kita akan mempelejari cara memanfaatkan information_schema untuk mengleak suatu informasi dalam database
disini saya biasanya sering pake group by, tapi kalian bisa pake UNION SELECT, ORDER BY u
Jadi totalnya ada 3 column langsung aja kita query pake UNION SELECT
jadi server ngebaca nya gini
dan output nya adalah nama database yang ada di server dan juga id = 1 dari table lulus
lgsg muncul tuh database ctf, lgsg aja kita query untuk apa aja si table yang ada di database ctf itu menggunakan concat table_name seperti ini
output :
kita tau ada table flag lgsg kita akses, tapi kita gatau columnya apa . kita bisa query dengan payload seperti ini
output
nah kita tau ada column flag_321 aja lgsg aja kita query kan coy kaya gini
dan dapet deh flagnya
mungkin untuk real case outputnya gakan kaya gitu. sesuaiin aja tapi mirip2 kok pasti
Example chall
refferensi : lactf 2024 la-housing-portal
download :
Kerjain dulu nnti kalo stuck baru liat sini lagi hehehe..
vulnerable code :
prefs.item() ga di filter kita lgsg bisa masukin ' pada variable v yg abis di iterate itu ( v itu adalah value dari nama requests form kita jadi misal ada name=asw v nya itu name = 'asw' gitu. lgsg aja payloadnya kita dpt lihat dari tas bisa inject ' untuk nutup stringnya jadi :
dibaca server jadi :
nah kenapa pake ' nah karna commentnya di blacklist jadi nanti error kalo cuman
nah karna ada ' sebelom limit , fix nya pake true condition '1 atau bisa '1'='1 atau true condition yg lain.
dan gmn tau table flagnya? ada di function get_flag select * from flag untuk enumerasi atau jg bisa enumerasi total nama database,colum yg ada pake method diatas.
Blind SQL Injection
soon
NOSQL Injection
Cheatsheet
Last updated