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 “ ‘ “ (petik) 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;
exit;
}
if (strlen($patced>4){
echo
“Sudah di Patch”;
exit;
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
nek sek bingung, browsing0 disik tentang gunane perintah2 pada script PHP di atas, nek kesulitan, monggo hubungi pak Aan atau saya.
SUmber: X Inject
0 comments:
Post a Comment
No SARA
No Bocah
No Junk
!!!