使用acunetix进行盲SQL注入

时间:2009-12-22 15:42:51

标签: php sql-injection blind

嗨我用acunetix来测试我的网站 问题出在这个脚本http://boedesign.com/blog/2007/02/18/ajax-star-rating/

acunetix没有显示任何消息,但是当我测试盲sql时,我可以得到像

这样的值
8 and 1=0 --
8 and 31337-31337=0

在rating_id mysql列中,我想只允许那里的数字,所以我做了一点修复,但由于第一个数字是8,它的传递给if,我该如何解决?它包含/ rating_process.php

这样的东西
// 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 {

并且几乎一样认为“// IF JAVASCRIPT DISABLED”

1 个答案:

答案 0 :(得分:0)

如果您知道评级必须是整数,则可以将变量转换为整数:

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

您也可以在id变量上执行此操作。

它确保您只有整数值。