Cara patching Sql Injection
Kang Asu
Cara patching Sql Injection
Selamat datang di Kang Asu, kali ini kang asu akan memberikan tutorial patching sql injection dan bug lainnya. Hal ini sangat berguna untuk para defacer yang baik hati.
Requirement:
- Shell / backdoor yang sudah terpasang di web yang rentan sql injection
Biasanya orang membuat halaman dinamis di PHP menggunakan MySQL untuk bisa koneksi dengan database. Dan terkadang query SQL dalam file php yang bersangkutan tidak dibatasi sehingga memungkinkan seseorang menginjeksi query sql lewat parameter di file php tersebut.
[Bug]
Biasanya halaman dinamis kira-kira seperti ini kodenya untuk membaca parameter dan mengkoneksikannya dengan database.
[Bug]
Biasanya halaman dinamis kira-kira seperti ini kodenya untuk membaca parameter dan mengkoneksikannya dengan database.
Karena $id tidak difilter maka seseorang bisa memasukkan query di situ sehingga akhirnya dijalankan oleh mysql_query.$id = $_GET['id'];
$db_query = mysql_query("SELECT * FROM namadb WHERE id=$id")
[Patch]
Kita bisa memfilternya. Kira-kira kodenya seperti ini.
error_reporting(0) berguna agar mysql tiidak mengeluarkan pesan error apabila terjadi error. Selanjutnya function filtering berguna untuk memfilter parameter masukan. Disini digunakan fungsi mysql_real_escape_string. Lalu dicek apabila parameter masukan mengandung karakter selain angka dan mempunyai nilai < 0 (biasanya orang akan me-minuskan parameter dalam melakukan sql injection) maka tidak akan dilanjutkan.error_reporting(0);
function filtering($id){
$idf = mysql_real_escape_string($id);
if (!ctype_digit($idf) || $idf < 0){
exit;
} else {
return $id;
}
}
$id = $_GET['id'];
$idf = filtering($id);
$db_query = mysql_query("SELECT * FROM namadb WHERE id=$idf");
Sekian
Regards
Kang Asu