Kebanyakan dari teman saya yang suka empes-empes website gak ada salahnya donk kita membantu sesama warga dunia maya buat pacth bug sql pada webnya, jangan mau enaknya aja =)) ok ini tutorial cupu dari saya bagaimana cara patch bug Sqli pada script PHP dan MySQL, Bagi yang master di lewat saja, Tutorial untuk Patch Bug Sqli ini sebenernya sangat banyak, dan saya rasa 1 aja untuk malam ini udah cukup, ok langsung saja ke tutorialnya :)
Dalam contoh ini, saya menemukan bug pada salah satu website negara India :D
ini alamatnya >> http://www.radiancetour.in/foreigntours_details.php?content_id=12
jika di tambahkan string ' (kutip ganda) akan memperoelah hasil erorr pada Mysqlnya :D kira-kira seperti ini penampakannya Notice: Use of undefined constant SB_TBL_DYNAMIC - assumed 'SB_TBL_DYNAMIC' in /home/content/29/6201829/html/radiancetour/foreigntours_details.php on line 99
Warning : mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/content/29/6201829/html/radiancetour/foreigntours_details.php on line 99
Warning : mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/content/29/6201829/html/radiancetour/foreigntours_details.php on line 99
Web tersebut sudah jelas Vuln serangan Sql Injection, sekarang kita coba untuk memPatchnya aja ya, gak usah di obrak-abrik :D
Dari keterangan Error di atas dapat kita simpulkan errornya berada di file foreigntours_details.php
Ok, langsung kita cek, dan liat isi filenya,
<?php
$content=mysql_fetch_object(mysql_query("SELECT * FROM ".SB_TBL_DYNAMIC." WHERE content_id ='".$_GET['content_id']."'")); ?>
Jelas terlihat bahwa pada content_id tidak ada filternya =)) pantesan web lu kena pepes mlu =)) =)) selanjutnya mari kita kasih filter, Tambahkan Code ini di dalam Filenya,
Code:
<?php
error_reporting(0);
function filtering($content_id){
$idf = mysql_real_escape_string($content_id);
if (!ctype_digit($idf) || $idf < 0){ exit; } else { return $content_id; } } $id = $_GET['content_id'];
function filtering($content_id){
$idf = mysql_real_escape_string($content_id);
if (!ctype_digit($idf) || $idf < 0){ exit; } else { return $content_id; } } $id = $_GET['content_id'];
Kira-kira menjadi seperti ini :
<?php
error_reporting(0);
function filtering($content_id){
$idf = mysql_real_escape_string($content_id);
if (!ctype_digit($idf) || $idf < 0){ exit; } else { return $content_id; } } $id = $_GET['content_id']; $content=mysql_fetch_object(mysql_query("SELECT * FROM ".SB_TBL_DYNAMIC." WHERE content_id ='".$_GET['content_id']."'")); ?>
function filtering($content_id){
$idf = mysql_real_escape_string($content_id);
if (!ctype_digit($idf) || $idf < 0){ exit; } else { return $content_id; } } $id = $_GET['content_id']; $content=mysql_fetch_object(mysql_query("SELECT * FROM ".SB_TBL_DYNAMIC." WHERE content_id ='".$_GET['content_id']."'")); ?>
Nah, kalau sudah tinggal save dan lihat hasilnya :D
Error nya sudah hilang :D kwkkwkwkw demikian tutorial cupu dari saya, wassalam :))
Mantap... pertamax.. ^_^
ReplyDeleteyee asu cuma dikasih error_reporting(0); -_-
ReplyDelete