Attention, ce blog est en mode archive. Il n'est plus alimenté et consultable en lecture seulement. Il se peut que certaines informations ne soient plus à jour.
Si vous souhaitez continuer à me suivre, je continuerai à bloguer d'ici quelques semaines sur le blog de SEObserver.

IPFlood ou comment gruger les systèmes de vote, de sondage, etc.

by 512banque on 7 septembre 2011

votes

Imaginez un monde ou vous pourriez contrôler les votes et où vous pourriez littéralement élire {le candidat|la meilleure réponse|le meilleur projet} que vous voulez… Ce n’est (malheureusement) pas encore possible dans le domaine politique, mais sur Internet, c’est très souvent à la portée du premier « petit malin » venu.

Comment effectue-t-on des contrôles lors des sondages/votes sur Internet ?

C’est simple : si la même IP a soumis déjà une fois, on ne prend plus en compte ses soumissions ultérieures.

Bien sûr, on peut faire comme Freeglobes et ajouter des contrôles inutiles de type « cookie », mais pour bypasser ce genre de contrôles, il suffit de désactiver les cookies avec la barre d’outil Web Developper ou de les effacer. Ce n’est donc pas l’objet de cet article.

Certains petits malins se sont amusés à utiliser des proxies pour voter plusieurs fois. Un proxy, c’est grosso modo un ordinateur intermédiaire qui renvoie une IP différente de votre vraie IP au serveur.

Les proxies de très bonne qualité, les proxies « Elite » permettent de ne renvoyer aucune information, juste l’IP du proxy. C’est le top du top, mais ça coûte un peu cher généralement (30$/mois les 10 IP chez ypp).

Les petits malins ayant besoin de centaines de votes et étant très souvent sur la paille, ils ont donc commencé à utiliser des proxies gratuit, mais de faible qualité. Et le problème avec les proxies de faible qualité, c’est qu’ils renvoient au serveur une information vous permettant de vous identifier.

Il s’agit généralement de l’une des trois variables : CLIENT-IP, X-FORWARDED-FOR et VIA (mais pas que).

Concrètement, si on se place du point de vue du serveur, on va recevoir une requête de ce type :

Dans le cas d’un proxy « Elite » :

Bonjour, je suis 189.189.189.189 (ip du proxy) et je voudrais accomplir une action.

Dans le cas d’un proxy de basse qualité :

Bonjour, je suis 189.189.189.189 (ip du proxy) et je voudrais accomplir une action, mais en fait c'est pas vraiment moi qui veux effectuer l'action, mais plutôt l'ordinateur 82.239.226.78 (ndlr : vous) hein, voilà c'est dit.

Hé oui, le proxy pourri renvoie votre adresse IP réelle à côté de la sienne, sûrement pour se protéger si d’aventure un petit malin était trop cavalier.

Si vous voulez approfondir le sujet, courez voir l’excellent article « les proxies gratuits, c’est trop cher » chez Un Peu de SEO avec lequel vous comprendrez l’essentiel de la notion de proxies sur le web.

Donc les scripts de vote se sont adaptés et ont dit « on ne va plus seulement s’intéresser à l’IP apparente, mais on va plutôt regarder essayer de remonter l’IP « réelle » du petit malin ». Et du coup, dès qu’ils trouvent une variable CLIENT-IP, une variable X-FORWARDED-FOR ou une variable VIA, ils prennent en compte cette IP finale comme IP votante.

Comme ça, même si j’utilise 200 proxies gratuits, tant que ces derniers laissent apparaître ma réelle IP comme IP finale et commanditaire de la requête, on m’identifie et un seul vote est comptabilisé, malgré les 200 proxies intermédiaires.

IPFlood ou la prise du dragon

Dans un plus pur esprit black hat, permettez-moi de vous présenter IPFlood.

En gros, IPFlood va faire un truc tordu, mais alors vraiment tordu.

Pour faire simple et rapide, il va générer à la volée une fausse commande CLIENT-IP, X-FORWARDED-FOR ou VIA avec une IP finale « bidon » lorsque vous consultez un site internet, vous faisant passer VOUS pour un proxy.

En gros, si votre IP réelle est 82.239.226.78, les requêtes que Firefox va envoyer seront du type :

Bonjour, je suis 82.239.226.78 et je voudrais accomplir une action, mais en fait c'est pas vraiment moi qui veux effectuer l'action, mais plutôt l'ordinateur 256.986.985.119 (ndlr : une IP completement fake) hein, voilà c'est dit.

Réponse du serveur dans 75% des cas ?

Ok mon good buddy, merci de m'avoir transmis l'IP du petit malin, pour l'instant il n'a jamais voté chez moi donc je comptabilise son vote, mais bon, je l'enregistre au cas où...

Et c’est comme ça à chaque requête, pour vous la faire simple :

Requête 1 : Bonjour, je suis 82.239.226.78 et je voudrais… , mais en fait … mais plutôt l’ordinateur 256.986.985.119

Réponse 1 : ok, je comptabilise un vote pour 256.986.985.119

Requête 2 : Bonjour, je suis 82.239.226.78 et je voudrais… , mais en fait … mais plutôt l’ordinateur 135.111.222.644

Réponse 2 : ok, je comptabilise un vote pour 135.111.222.644

Requête 3 : Bonjour, je suis 82.239.226.78 et je voudrais… , mais en fait … mais plutôt l’ordinateur 99.098.643.298

Réponse 3 : ok, je comptabilise un vote pour 99.098.643.298

Et ainsi de suite…

Votre pouvoir de vote est ainsi illimité.

Ce que ça change pour vous dans votre navigation ? Absolument rien, tout est transparent pour vous…

Je ne peux pas en dire plus, mais de très, très (très) gros sites possèdent cette faille béante. Du coup, je peux littéralement choisir qui va être l’heureux élu et va monter sur le podium des 3 ressources les plus populaires. Et généralement, l’heureux élu, c’est moi. Mais maintenant, c’est aussi vous 😉

Petite dédicace à Yakamo et son negative analytics : le trick fausse toutes les stats getclicky. Un simple F5 et on a un nouveau visiteur en ligne… Je n’ai pas encore vérifié pour google analytics, je vous laisserai le soin de vous en occuper :)

Gros merci à Vince qui m’a communiqué l’existence de ce magnifique plugin il y a 1 an 😉

Lien : le plugin IPFlood

{ 21 comments }

Si vous avez trouvé ce blog via une liste de blogs dofollow, ne perdez pas votre temps, je refuse systématiquement tous les commentaires sauf ceux en valent réellement la peine ;)

Comments on this entry are closed.

Previous post:

Next post: