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.
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