Cara patching Sql Injection

Kang Asu


 Cara patching Sql Injection
Selamat datang di Kang Asu, kali ini kang asu akan memberikan tutorial patching sql injection dan bug lainnya. Hal ini sangat berguna untuk para defacer yang baik hati.

Requirement:
  • Shell / backdoor yang sudah terpasang di web yang rentan sql injection
Teori:
Biasanya orang membuat halaman dinamis di PHP menggunakan MySQL untuk bisa koneksi dengan database. Dan terkadang query SQL dalam file php yang bersangkutan tidak dibatasi sehingga memungkinkan seseorang menginjeksi query sql lewat parameter di file php tersebut.

[Bug]
Biasanya halaman dinamis kira-kira seperti ini kodenya untuk membaca parameter dan mengkoneksikannya dengan database.
$id = $_GET['id'];
$db_query = mysql_query("SELECT * FROM namadb WHERE id=$id")
Karena $id tidak difilter maka seseorang bisa memasukkan query di situ sehingga akhirnya dijalankan oleh mysql_query.

[Patch]
Kita bisa memfilternya. Kira-kira kodenya seperti ini.
   error_reporting(0);
   
      function filtering($id){
         $idf = mysql_real_escape_string($id);
         if (!ctype_digit($idf) || $idf < 0){
            exit;
         } else {
            return $id;
         }
      }

      $id = $_GET['id'];
      $idf = filtering($id);
      $db_query = mysql_query("SELECT * FROM namadb WHERE id=$idf");
error_reporting(0) berguna agar mysql tiidak mengeluarkan pesan error apabila terjadi error. Selanjutnya function filtering berguna untuk memfilter parameter masukan. Disini digunakan fungsi mysql_real_escape_string. Lalu dicek apabila parameter masukan mengandung karakter selain angka dan mempunyai nilai < 0 (biasanya orang akan me-minuskan parameter dalam melakukan sql injection) maka tidak akan dilanjutkan.

Sekian

Regards
Kang Asu