Acunetix kullanarak Blind SQL Injection

1 Cevap php

hi im using acunetix to test my website the problem is with this script http://boedesign.com/blog/2007/02/18/ajax-star-rating/

Acunetix herhangi bir mesaj görünmüyor ama ben kör sql için test ederken ben gibi değerleri alabilirsiniz

8 and 1=0 --
8 and 31337-31337=0

rating_id mysql sütununda, ben sadece orada sayıları izin vermek istiyorum, bu yüzden ilk sayı 8 olarak geçen trought çünkü ben biraz düzeltme yaptı ama, ben bunu nasıl düzeltebilirim olur? bu gibi onun şey / rating_process.php içerir

// IF JAVASCRIPT IS ENABLED
if($_POST){
$id = escape($_POST['id']);
$rating = (int) $_POST['rating'];

if($rating <= 5 && $rating >= 1 && $id >= 1 && $id <=9999999){

if(@mysql_fetch_assoc(mysql_query("SELECT id FROM ratings WHERE IP = '".$_SERVER['REMOTE_ADDR']."' AND rating_id = '$id'")) || isset($_COOKIE['has_voted_'.$id])){

echo 'already_voted';  
} else {

ve hemen hemen aynı anda düşünmek "/ / IF JavaScript devre dışı"

1 Cevap

Eğer derecelendirmesi bir tamsayı olması gerektiğini biliyorsanız, bir tamsayı değişken olarak çevirebilirsiniz:

$rating = (int) $_POST['rating'] ;

Sen id değişken üzerinde de yapabilirsiniz.

Bu sadece tamsayı değerleri size sağlar.