Author : UnknownTidak ada komentar
Malaikat Tersakti Hallo semua pembaca setia blogger malaikattersakiti balik lagi dengan kami di sini kali ini kami tidak akan membahas tentang deface atau hacking tetapi kali ini kami akan memberikan sedikit info tentang cari menutup celah pada web situs SQL jadi langsung aja ke TKP,
Kebanyakan dari teman saya yang suka deface-deface web situs tidak ada salahnya donk kita membantu sesama warga dunia maya buat pacth bug sql pada web situs, jangan mau enaknya aja =)) ok ini tutorial sederhana dari saya bagaimana cara patch bug Sqli pada script PHP dan MySQL, Bagi yang master di lewat saja.
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
Selesai kurang jelas bisa komen atau gabung ke grun kami :)
Artikel Terkait
Posted On : Rabu, 07 Desember 2016Time : 03.54