Reseller Domain Murah dan termurah di Indonesia? ya di ResellerCamp.
         
 

Forum PHP Indonesia

 
Advanced Search
   
 
Home Register FAQ Memberlist Usergroups  
 
 

Forum PHP Indonesia Forum Index PHP Security Cara Lain Cegah SQL Injection
Display posts from previous:   
      All times are GMT + 7 Hours  

Cara Lain Cegah SQL Injection

Post new topic  Reply to topic Goto page 1, 2  Next

Thu Mar 11, 2010 15:47
Author Message
Cruz3N
PHPuser
PHPuser


Joined: 14 Jul 2009
Posts: 46

Post subject: Cara Lain Cegah SQL Injection Reply with quote

Source : http://cruzenaldo.com/cara-lain-cegah-sql-injection/

SQL Injection gak habis – habis. Setiap hari ada aja situs yang jadi korban. Entah emang karena adminnya gak ngerti atau apa saya gak tau. Padahal tutorial untuk bagaimana melakukan dan mencegahnya dah banyak banget beredar di internet.

Emang agak susah sih apalagi kalo yang model Blind SQL Injection dan beberapa variasi yang banyak banget. Sedangkan kita tahu, beberapa CMS terkenal pun sering jadi korban.

Sebagai contoh saya pengguna Wordpress. Aman gak Wordpress itu? Ya menurut saya sih oke – oke aja cuman bagaimana dengan pluginnya? Facebook pun banyak kasusnya yang ternyata kelemahannya berada pada Aplikasi – aplikasinya, mungkin game atau apapun itu.

Pada kesempatan kali ini saya hanya akan mencoba melakukan pencegahan dengan predefined atau PHP Superglobal $_SERVER['REQUEST_URI'] yang menangkap nilai pada URL.

Penasaran? Kita praktek aja. Ehmm, karena saya males buat contoh web yang vulnerable kita akan mencoba contoh script yang di buat oleh Om EVA-00 (kemana aja lo Bro?) yang juga sekalian dia menuliskan tutorial bagaimana melakukan Dasar SQL Injection.



DOWNLOAD

Setelah download, buka folder injector lalu ekstrak folder xyb_injector.sql.gz.

Buka phpMyAdmin dan buat database "inject" dan import database yang tadi telah kita ekstrak.





Dan hasilnya kayak gini nanti…



Kembali ke folder injector, buka folder library dan edit file config.php. Masukkan username, password, host dari phpmyadmin dan nama database di dalamnya…

Quote:
<?php
// This is an example of config.php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'inject';
?>


Selesai dan jalankan contoh webnya…



Sampai sini kalian bebas belajar dah bagaimana dasar-dasar SQL Injection dan tutorialnya ada di dalam ebooknya.

Kita hanya stop sampai disini aja…

Quote:
http://localhost/cobain/injector/index.php?id=-4+union+select+1,@@version,3,4,5--




Sekarang buat file php baru dengan nama antisqli.php lalu masukkan script berikut.

Quote:
<?php
if (strlen($_SERVER['REQUEST_URI']) > 255 || strpos($_SERVER['REQUEST_URI'], "concat") || strpos($_SERVER['REQUEST_URI'], "union") || strpos($_SERVER['REQUEST_URI'], "base64")) {
echo "Maaf Bro... Apa tuh? Mau Nakal Yah Weks";
@header("HTTP/1.1 414 Request-URI Too Long");
@header("Status: 414 Request-URI Too Long");
@header("Connection: Close");
@exit;
}
?>


Setelah itu kita melakukan include pada index.php di dalam folder injector tadi.

Quote:
<?php
include 'library/config.php';
include 'library/opendb.php';
include 'antisqli.php';


Di bagian paling atas tinggal tambahkan aja include 'antisqli.php';. Setelah itu buka link yang tadi kita sisipkan perintah SQL dan apa yang terjadi?



Keren kan? Oke kita lihat lagi antisqli.php – nya…

Quote:
if (strlen($_SERVER['REQUEST_URI']) > 255 || strpos($_SERVER['REQUEST_URI'], "concat") || strpos($_SERVER['REQUEST_URI'], "union") || strpos($_SERVER['REQUEST_URI'], "base64"))


Jika variabel di URL lebih dari 255 atau (tanda || dibaca atau) ada kata "concat", "union" dan "base64".

Quote:
echo "Maaf Bro... Apa tuh? Mau Nakal Yah Weks";
@header("HTTP/1.1 414 Request-URI Too Long");
@header("Status: 414 Request-URI Too Long");
@header("Connection: Close");
@exit;


Maka akan muncul pesan "Maaf Bro… Apa tuh? Mau Nakal Yah" kemudian dilanjutkan dibawahnya.

Nah gak hanya cuman union / concat kan jika kita melakukan SQL Injection. Ada select, @@version dan lain – lain. Kan kalian yang lebih jago kalo soal beginian Nantinya kalian tinggal tambahkan aja menjadi.

Quote:
strpos($_SERVER['REQUEST_URI'], "concat")


Jangan lupa tanda || (atau). Oke sekian dulu tutorial dari saya, semoga berguna dan mohon maaf jika tutorial ini tergolong newbie banget dan sederhana. Ingat hal besar dimulai dari yang sederhana dulu. Ketemu lagi di tutorial berikutnya…


Last edited by Cruz3N on Wed Mar 24, 2010 09:47; edited 1 time in total
 
View user's profile Send private message Visit poster's website
      Back To Top  

Thu Mar 11, 2010 20:06
Author Message
sishimaru
PHPnewbie
PHPnewbie


Joined: 11 Mar 2010
Posts: 12

Post subject: Reply with quote

aizzz keren bang... thanks.
Kalo gitu bikin judul halaman atau nama filenya gak boleh lebih dari 255 karakter ya?

Big Smile Big Smile
 
View user's profile Send private message
      Back To Top  

Thu Mar 11, 2010 22:30
Author Message
Cruz3N
PHPuser
PHPuser


Joined: 14 Jul 2009
Posts: 46

Post subject: Reply with quote

Ya kan bisa diatur Bro... Sesuai kebutuhan aja... Soalnya biasa kan kalo nginjek banyak banget tuh URLnya...

CMIIW
 
View user's profile Send private message Visit poster's website
      Back To Top  

Fri Mar 12, 2010 04:28
Author Message
Jastis
PHPnewbie
PHPnewbie


Joined: 07 Mar 2010
Posts: 9
Location: Black Hat

Post subject: Reply with quote

wow...bagus nih infonya om......ntar tinggal gunain aja...
_________________
http://jastisbago.blogspot.com
http://yogyacarderlink.web.id
 
View user's profile Send private message Visit poster's website Yahoo Messenger
      Back To Top  

Sun Mar 21, 2010 07:02
Author Message
XGooooogle
PHPnewbie
PHPnewbie


Joined: 19 Mar 2010
Posts: 8

Post subject: Reply with quote

wew,, mantabh nih... kalo url-nya panjang otomatis ke redirecct ke home ato kehalaman yg terakhir dkunjungi yah???
 
View user's profile Send private message Visit poster's website Yahoo Messenger
      Back To Top  

Sun Mar 21, 2010 15:48
Author Message
Cruz3N
PHPuser
PHPuser


Joined: 14 Jul 2009
Posts: 46

Post subject: Reply with quote

XGooooogle wrote:
wew,, mantabh nih... kalo url-nya panjang otomatis ke redirecct ke home ato kehalaman yg terakhir dkunjungi yah???


Bukan Bro tapi akan muncul pesan error yang kita suka. Kalo mau juga bisa ditaruh script redirect kok... Big Smile
 
View user's profile Send private message Visit poster's website
      Back To Top  

Mon Mar 22, 2010 11:17
Author Message
RoNz
Jagoan PHP
Jagoan PHP


Joined: 13 Apr 2009
Posts: 485
Location: Kerinci

Post subject: Reply with quote

Hehe.. Master jasakom beraksi.. :D
Cruz3n ne ce apa co seh? Xixixi..

oh ya, ada juga cara lain dgn menggunakan .htaccess utk redirect variabel http request tertentu. Tujuannya sama dgn diatas, cm file ini cukup ditempatkan di root directory aja.
_________________
.: FeeLCoMz Community :.
 
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
      Back To Top  

Wed Mar 24, 2010 09:42
Author Message
Cruz3N
PHPuser
PHPuser


Joined: 14 Jul 2009
Posts: 46

Post subject: Reply with quote

Ah bisa aja ente... "kerinci" kayaknya ane kenal neh :p

Nih ada tambahannya

Pertama – tama makasih buat Om ketek untuk perbaikannya neh. Emang kemaren saya sempet lupain so pengembangan penting ini harus banget.

Kenapa? Coba, pertama kalo kita masukkan URL seperti ini

Quote:
http://localhost/cobain/injector/index.php?id=-4+UniOn+select+1,@@version,3,4,5--
atau seperti ini
http://localhost/cobain/injector/index.php?id=-4+uNioN+select+1,@@version,3,4,5--
dan lain lain


Pasti bakalan gak berhasil karena masalahnya si strpos itu mencari dengan case sensitive alias huruf besar atau kecil dibedain…
jadi union sama UniOn akan dibedakan.

Solusi pertama adalah menggunakan stripos (case insensitive)

Quote:
if (strlen($_SERVER['REQUEST_URI']) > 255 || stripos($_SERVER['REQUEST_URI'], "concat") || stripos($_SERVER['REQUEST_URI'], "union") || stripos($_SERVER['REQUEST_URI'], "base64")) {


Atau menggunakan preg_match


Quote:
<?php
// kata2 kotor dan jorok... ;-)
$berbahaya = array("union", "concat", "base64");

$gabungsemua = implode("|",$berbahaya);
if((strlen($_SERVER['REQUEST_URI']) > 255) || (preg_match("/".$gabungsemua."/i",$_SERVER['REQUEST_URI']))){
echo "Maaf Bro... Apa tuh? Mau Nakal Yah Weks";
@header("HTTP/1.1 414 Request-URI Too Long");
@header("Status: 414 Request-URI Too Long");
@header("Connection: Close");
@exit;



Sekarang union,UNIon,unIoN dan variasi – variasi yang lain pasti gak akan berhasil…

Semoga berguna...
 
View user's profile Send private message Visit poster's website
      Back To Top  

Mon Mar 29, 2010 03:54
Author Message
RoNz
Jagoan PHP
Jagoan PHP


Joined: 13 Apr 2009
Posts: 485
Location: Kerinci

Post subject: Reply with quote

Wih, mantap deh.. :D

Klo ga keberatan, mohon cek security web saya di http://feelcomz.com yah, maklum baru belajar bikin web nih. Thx b4. :D
_________________
.: FeeLCoMz Community :.
 
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
      Back To Top  

Mon Apr 05, 2010 12:24
Author Message
djazman85
Anak Baru
Anak Baru


Joined: 05 Apr 2010
Posts: 1

Post subject: Reply with quote

Makasih gan...
In Love In Love In Love
 
View user's profile Send private message
      Back To Top  

Tue Apr 06, 2010 17:07
Author Message
Cruz3N
PHPuser
PHPuser


Joined: 14 Jul 2009
Posts: 46

Post subject: Reply with quote

Aduh Om Kerinci... Kalo untuk begitu saya belom bisa :D
Masih belajar Om... Biasa mah target random aja :D
Saya cuman lamer Om Weks
 
View user's profile Send private message Visit poster's website
      Back To Top  

Sun May 09, 2010 11:40
Author Message
dot_co_id
Anak Baru
Anak Baru


Joined: 09 May 2010
Posts: 3

Post subject: Reply with quote

mantap neh
gua baru belajar soalnya ^
 
View user's profile Send private message
      Back To Top  

Sun Jun 13, 2010 20:04
Author Message
widhiecyber
PHPnewbie
PHPnewbie


Joined: 06 Jun 2010
Posts: 6
Location: yogyakarta

Post subject: Reply with quote

wah makasih banyak inpo nya
ntar ane coba gan
 
View user's profile Send private message Visit poster's website Yahoo Messenger
      Back To Top  

Wed Jun 23, 2010 18:11
Author Message
rrcp1992
PHPnewbie
PHPnewbie


Joined: 23 Jun 2010
Posts: 8
Location: Pangkalpinang, Bangka

Post subject: Reply with quote

Mantap abis tutorialnya. Ntar tak cobain.. hehe..

Yg mau download software, film, ebook inggris ma games pc silahkan kunjungi http://rendyriancp.cz.cc

Thanks
 
View user's profile Send private message Visit poster's website Yahoo Messenger
      Back To Top  

Thu Aug 05, 2010 23:31
Author Message
ndhol
PHPnewbie
PHPnewbie


Joined: 06 Oct 2009
Posts: 16

Post subject: Reply with quote

@XGooooogle : untuk redirect ke index.php misalnya ganti aja baris

echo "Maaf Bro... Apa tuh? Mau Nakal Yah Weks";

menjadi

print "<script>";
print " self.location='index.php';";
print "</script>";
 
View user's profile Send private message
      Back To Top  
Post new topic  Reply to topic Goto page 1, 2  Next

 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


      Back To Top  

Page 1 of 2
Goto page 1, 2  Next
Jump to:  
Powered by phpBB © 2001, 2002 phpBB Group
Toko Kaos Couple | Avalanche style by What Is Real © 2004 | Toko Baju Butik Online | Cara Pedia | Busana Baju Muslim