SQL Injection adalah teknik hacking untuk memanipulasi query ( perintah database). injeksi sering di lakukan melalui inputan inputan yang tidak di lakukan pengecekan kebenaran data yang di input. untuk lebih jelasnya saya berikan contoh program dan query yang di injeksi
Method GET
untuk mengecek vuln atau tidak biasanya attacker menambahkan ‘ (kutip 1) jika keluar error maka website tersebut vuln. apa sih yang sebenarnya terjadi kok di tambahin ‘ (kutip) aja langsung error?.
pada dasarnya method GET[id] diatas di gunakan untuk mencari data di dalam database. Contoh :
pada dasarnya method GET[id] diatas di gunakan untuk mencari data di dalam database. Contoh :
SELECT * FROM artclie WHERE kodearticle = ‘$_GET[id]’atau contoh kasus diatas
SELECT * FROM artclie WHERE kodearticle = ‘1’
query itu lah yang akan di eksekusi dan datanya yang ada di database akan di tampilkan ke dalam PHP berdasarkan kodearticle. terus kalo di tambahin kutip emang kenapa ?
SELECT * FROM artclie WHERE kodearticle = ‘1”
ya pasti error karna kutip yang kita tambahkan tadi di anggap penutup, yang jadi masalah adalah kutip yang paling belakang. nah dari method itu lah perintah perintah berbahaya akan di masukan dan akan di eksekusi. ane gak jelasin step stepnya di sini karna terlalu panjang.
Method POST & Login Bypass
adalah SQL Injection dengan membaypass query SELECT dengan operator persamaan.
Contoh:
Contoh:
<?php
$query = “SELECT user,pass FROM users WHERE user='”.$_POST[‘user’].”‘ “;
$jalan = mysql_query($query);$ambil = mysql_num_rows($jalan);
if($ambil!=0){echo ” Login Berhasil”;}else{echo ” Login Gagal ”}?>
di atas adalah contoh program login, bagaimana kalau isi dari variable $_POST[‘user’] adalah perintah perintah berbahaya ? ini lah yang di maksud dengan injeksi, mengirim perintah perintah berbahaya kedalam query yang nantinya akan di eksekusi.
Lanjut.
Contoh kasus di atas attacker mengirimkan value ke $_POST[‘user’] adalah
Lanjut.
Contoh kasus di atas attacker mengirimkan value ke $_POST[‘user’] adalah
‘ or ‘1’=’1
perintah berbahaya ini lah yang memanipulasi query. query yang akan di eksekusi akan menjadi seperti ini.
$query = “SELECT user,pass FROM users WHERE user=” or ‘1’=’1′ “;
dari operator di atas ‘1’=’1′ akan menghasil kan nilai true. query select akan di eksekusi dan menampilkan table users dengan field user dan pass. sebenarnya kesalahan bukan berada di query sql tetapi dalam variable $_POST karna tidak di lakukan pengecekan input yang benar.
Cara Kerja
jadi cara kerja yang ane simpulkan berdasarkan contoh di atas adalah
attcker menginput perintah berbahaya lalu di eksekusi dengan program , program mengirimkan querynya ke database. Mudah kan.
attcker menginput perintah berbahaya lalu di eksekusi dengan program , program mengirimkan querynya ke database. Mudah kan.
Query berbahaya yang sering di gunakan
—
query yang ada di belakang — akan di anggap sebagai komentar / di abaikan
query yang ada di belakang — akan di anggap sebagai komentar / di abaikan
;
untuk mengakhiri sebuah query biasanya di gunakan untuk mengirimkan perintah / query baru
Contoh : SELECT * FROM namatabel; DROP namatabel–
untuk mengakhiri sebuah query biasanya di gunakan untuk mengirimkan perintah / query baru
Contoh : SELECT * FROM namatabel; DROP namatabel–
concat()
berfungsi menggabungkan string
berfungsi menggabungkan string
union
berfungsi menggabungkan 2 tabel yang berbeda dengan syarat jumlah kolom harus sama
Contoh : SELECT * FROM user WHERE id=’1′ UNION SELECT kolom1,kolom2 FROM namatabel
baca juga : Macam-macam teknik hacking yang wajib diketahui
berfungsi menggabungkan 2 tabel yang berbeda dengan syarat jumlah kolom harus sama
Contoh : SELECT * FROM user WHERE id=’1′ UNION SELECT kolom1,kolom2 FROM namatabel
baca juga : Macam-macam teknik hacking yang wajib diketahui
sumber : ariefhikam.wordpress.com
Subscribe by Email
Follow Updates Articles from This Blog via Email
1 Comments
nambah pengetahuan, tq
Reply Delete