[RESOLU] Blind sql injection

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Blind sql injection

Re: [RESOLU] Blind sql injection

par @rthur » 18 nov. 2016, 01:32

top ! :)

Re: Blind sql injection

par mumbly » 17 nov. 2016, 19:59

Merci mille fois : j'ai réussi je pense ...

Re: Blind sql injection

par @rthur » 15 nov. 2016, 23:18

Toutes les variables que tu reçoit d'un utilisateur doivent être filtrées, sans exception.
Dans ton exemple, il faut donc filtrer les variables tri, ordre et p

Pour ta variable tri spécifiquement, quelle valeur peut-elle avoir ?
Si c'est uniquement quelques nom de champs alors le mieux c'est effectivement de filtrer avec un in_array() comme proposé par tof73, idem pour ordre
Pour p si il s'agit que d'un entier pour le n° de page, alors tu peux utiliser le filtre FILTER_VALIDATE_INT


Voici un exemple pour in_array() :
<?php
if ( !empty($_GET['ordre']) && !in_array($_GET['ordre'], array('asc','desc') ) { 
     die("Paramètre ordre incorrect");
}

Re: Blind sql injection

par mumbly » 14 nov. 2016, 14:02

Merci...
mais désolé, je suis paumé :/
Dans la ligne suivante, c'est le "paramètre" tri qu'il faut que je protège ?

Code : Tout sélectionner

<th style="width: 250px;"><a style="color: #fff; text-decoration: none;" href="membres.php?tri=username&ordre=desc">&#x2191;</a>Pseudo<a style="color: #fff; text-decoration: none;" href="membres.php?tri=username&ordre=asc">&#x2193;</a></th>
Si je prends filter_input, faut-il que je fasse comme cela ? :
$tri_html = filter_input(INPUT_GET, 'tri', FILTER_SANITIZE_SPECIAL_CHARS);
$tri_url = filter_input(INPUT_GET, 'tri', FILTER_SANITIZE_ENCODED);

Mille mercis.

Re: Blind sql injection

par @rthur » 14 nov. 2016, 11:08

Tu peux utiliser également la fonction filter_input(), très très pratique pour filtrer les variables en entrée de tes scripts.
http://php.net/manual/fr/function.filter-input.php

Re: Blind sql injection

par tof73 » 14 nov. 2016, 10:29

tu vérifies que la valeur passée est bien dans la liste des valeurs que tu attends avec http://php.net/manual/fr/function.in-array.php par exemple.

Blind sql injection

par mumbly » 14 nov. 2016, 08:20

En passant par les services de https://wssa.beyondsecurity.com pour "tester" mon site, j'ai découvert plusieurs vulnérabilités.
Notamment, une "blind sql injection" :

Code : Tout sélectionner

[b]Blind SQL Injection[/b] URL: http://www.freetorrent.fr/membres.php?tri=memberID&ordre=DESC&p=2 Affected Parameter: tri Vector Used: VALUE AND SLEEP(24)=0 Pattern found: Timing test
... et là j'ai besoin de vos lumières car, même si cela peut vous parraitre enfantin..., là, je ne sais pas comment protéger cette ligne.
Un coup de main ?
Mille mercis !