Aveugle Injection SQL en utilisant Acunetix
-
20-09-2019 - |
Question
hi im en utilisant Acunetix pour tester mon site le problème est avec ce script http://boedesign.com/blog / 2007/02/18 / ajax-nombre d'étoiles /
Acunetix ne montre aucun message, mais quand je test pour sql aveugle je peux obtenir des valeurs telles que
8 and 1=0 --
8 and 31337-31337=0
dans la colonne rating_id mysql, je veux permettre que des chiffres là-dedans, donc je l'ai fait un peu, mais depuis fix le premier numéro est de 8 son trought de passage du si, comment puis-je résoudre ce problème? ses quelque chose comme ceci à includes / 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 {
et presque le même penser à la « // Si JavaScript est désactivé »
La solution
Si vous savez que la note doit être un entier, vous pouvez lancer votre variable comme un entier:
$rating = (int) $_POST['rating'] ;
Vous pouvez faire aussi bien sur votre variable id
.
Il vous assure que vous avez seulement des valeurs entières.