Monday 11 November 2013

Cara Menambal Bug SQLi ?


Di atas adalah script untuk filter parameter yang mempunyai bug 
Misal pada contoh target seperti di bawah ini 
http://www.victim.com/news.php?bugnya=1 

Apabila setelah parameter di injeksikan “-“ (minus) atau “ ‘ “ (quote) memunculkan error SQL pada browser, maka kemungkinan pada file news.php dengan parameter bugnya terdapat bug atau vulnearable SQL Injection.

Bug terjadi, ialah ketika parameter bugnya pada script 
$_GET[bugnya] tidak difilter dan langsung di eksekusi langsung oleh query SQL. 
Maka, cara kita untuk patching pada bagian tersebut ialah, 
Pertama kita buka file news.php, lalu kita cari parameternya. Misal pada script di bawah ini

<?php 
$query = “ select * from news where id = $_GET[‘bugnya’] “; 
mysql_query($query); 
?> 

Pada contoh di atas, maka langkah yang kita gunakan ialah bagaimana caranya pada $_GET[‘bugnya’] tidak di eksekusi langsung oleh query sql. Yaitu kita modif script di atas menjadi seperti di bawah ini

<?php 
$patched = $_GET[‘bugnya’]; 
if($patched < 0){ 
echo “Sudah di Patch”; 
exit; 
} 
if(!preg_match(“/[0-9]+$/”, $patched)){ 
echo “Sudah di Patch”; exit; 
} 
if (strlen($patced>4){ 
echo “Sudah di Patch”; exit; 
} 

$query = “ select * from news where id = $patched “; 

mysql_query($query); 
?> 

Sederhananya, apa bila $_GET[bugnya] setelah dimasukkan variable 
$patched dan kemudian lolos dari pengkondisian pengkondisian tersebut, maka nilai dari $_GET[bugnya] yang di masukkan variable $patched baru boleh di eksekusi oleh query SQL.

0 comments:

Post a Comment

◄ Newer Post Older Post ►
 

Copyright 2012 Ivan Andhika Muslim Seo Elite by BLog Ivan | Blogger Templates