Auteur Sujet: Script bash pour tricher à un jeu idiot en ligne  (Lu 3409 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne lobo1512

  • Membre Junior
  • *
  • Messages: 26
  • +0/-0
Script bash pour tricher à un jeu idiot en ligne
« le: 04 mars 2018 à 18:40:06 »
Bonjour. Je viens poster pour partager une faille que j'ai exploité grâce à un script bash (très très modeste).
Alors, il s'agît d'un site de rencontre payant dont je ne donnerais bien sûr pas le nom. Ils organisent un concours pour élire un de leurs membres, qui obtient ensuite une récompense.

1ere faille découverte : il est possible d'accéder au concours et de voter sans être loggé.
2eme faille découverte (merci "X" pour l'info) : si l'on se connecte avec une fenêtre de navigation privée sur la page du concours, lorsque l'on referme la fenêtre et que l'on en réouvre une autre il est possible de revoter (ça ne marche qu'en navigation privée, je ne comprend pas trop pourquoi)

J'ai donc créé un script en bash qui automatise l'ouverture de la fenêtre, le vote et la fermeture de la fenêtre en boucle infini avec une fonction sleep et random pour qu'il y ait une voix donnée aléatoirement toute les 30 à 60 secondes.
Dans le script, par soucie de simplicité, j'utilise le navigateur Opera car il a un vpn intégré. Pour naviguer et cliquer sur la page, j'utilise Xdotool.

Ce script (inutilisable si on a pas l'adresse du site en question) a été conçut dans le seul but de faire un petit challenge personnel fort modeste, il n'a tourné que très peu et donné quelques voix à un membre inscrit qui était à 0 dans les stats, juste afin de pouvoir constater qu'il fonctionne.
Il va certainement vous paraître ridicule, mais il faut bien commencer quelque part...

#!/bin/bash

while true; do

#Ouverture de la fenêtre privée
opera -private http://...censuré...

sleep 10

#Navigation sur la page
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"
xdotool key "Down"

sleep 2

#Vote
xdotool mousemove 780 700
xdotool click 1

sleep 2

#Fermeture de la page
xdotool key ctrl+w

#Attente aléatoire avant fermeture de boucle
sleep $[($RANDOM % ($[60 - 20] + 1)) + 20] ;

 done
« Modifié: 04 mars 2018 à 19:40:57 par lobo1512 »

Hors ligne lobo1512

  • Membre Junior
  • *
  • Messages: 26
  • +0/-0
Re : Script bash pour tricher à un jeu idiot en ligne
« Réponse #1 le: 04 mars 2018 à 19:21:07 »
Pour la petite histoire j'ai quand même hésité à laisser le script tourner car il s'agît d'un site très connu qui fait énormément de com et de pub, l'une d'elle étant de diffuser et d'offrir des calendriers sexy et qu'en plus de la récompense le gagnant du concours sera en première page du prochain calendrier.
Et il se trouve qu'un des candidats au concours est en photo en string vert fluo !!!  ;D ;D ;D

PS: Le site recherche des dev PHP (tu m'étonnes!  ;D ), si ça intéresse quelqu'un n'hésitez pas à me mp, je vous donnerai le nom une fois le concours terminé.
« Modifié: 04 mars 2018 à 19:39:17 par lobo1512 »

Hors ligne _john_doe

  • Contributeur de Kali-linux.fr
  • Membre VIP
  • *****
  • Messages: 595
  • +33/-5
Re : Script bash pour tricher à un jeu idiot en ligne
« Réponse #2 le: 04 mars 2018 à 19:42:49 »
Salut,
Ton nombre de xdotool key "Down" est une constante ?
Auquel cas tu peux le while aussi avec une incrementation pour eviter de re-ecrire x fois la meme instruction (un while dans ton while).
Comment ton script fait-il pour choisir le profile sur lequel ton mousemove clickera ?
Car la tu descends de 35 et ensuite tu cliques en 780 700.
C'est toujours le meme profil sur lequel tu tombes quand tu suis ce shema ?



Hors ligne lobo1512

  • Membre Junior
  • *
  • Messages: 26
  • +0/-0
Re : Script bash pour tricher à un jeu idiot en ligne
« Réponse #3 le: 04 mars 2018 à 20:01:48 »
Oui, c'est toujours le même profil, en fait j'ouvre une première fenêtre Opéra normale avant de lancer le script, afin que toutes les fenêtres privées se réouvrent exactement au même endroit (sans ça un coup sur 2 elle s'ouvre en page entière, et les coordonnés ne sont plus bons).
Je descend 35 fois pour que le profil choisi se retrouve visible dans la page. Il est toujours au même endroit car les nouveaux inscrits apparaissent en dessous (ça ne bouge pas en fonction des stats mais simplement par date d'inscription).
Les coordonnées, je ne savais pas comment les trouver donc j'ai bidouillé en utilisant un mètre sur l'écran et en appliquant une règle de trois, après quelques essais et réglages je suis tombé juste.

Oui pour la boucle je sais que ça aurait été bien plus propre, j'ai essayé avec un for, ça a foiré et ensuite j'avais un peu la flegme de chercher. Mais j'ai pensé au while aussi.

Bon, c'est vraiment du bidouillage avec des bouts de carton... Faute de connaissance j'ai essayé de contourner les problèmes rencontrés avec les moyens du bord...

EDIT: Pour la boucle c'était plus une histoire de temps que de flegme, il fallait que je finisse le script dans l'aprés midi car demain je bosse et que je ne pourrais pas y consacrer du temps. Donc je ne me suis pas éternisé sur les recherches et j'ai fait avec ce que j'avais en tête. Mais je suis conscient qu'il aurait fallu...
« Modifié: 04 mars 2018 à 20:14:29 par lobo1512 »

Hors ligne _john_doe

  • Contributeur de Kali-linux.fr
  • Membre VIP
  • *****
  • Messages: 595
  • +33/-5
Re : Script bash pour tricher à un jeu idiot en ligne
« Réponse #4 le: 04 mars 2018 à 20:47:04 »
C'est un debut.  :)
Pour ameliorer ton script tu peux changer de serveur VPN apres chaque clique.
Car l'admin reseau s'il est pas trop bête apercevra dans les logs que c'est toujours la meme IP qui clique (meme si l'IP en question est une IP VPN).
Tu peux aussi si tu as quelques connaissances en php/html regarder le code source de la page en question et essayer de reperer l'ID du profil sur lequel tu cliques et les arguments/methode utilisés qui sont posté en passant par un proxy qui bloque les flux sortants (beef fait ca tres bien) et ainsi automatiser ton script via une autre methode que xdotool.
Enfin bref tu as de quoi t'amuser  :)

Hors ligne lobo1512

  • Membre Junior
  • *
  • Messages: 26
  • +0/-0
Re : Re : Script bash pour tricher à un jeu idiot en ligne
« Réponse #5 le: 04 mars 2018 à 21:17:05 »
C'est un debut.  :)
Pour ameliorer ton script tu peux changer de serveur VPN apres chaque clique.
Car l'admin reseau s'il est pas trop bête apercevra dans les logs que c'est toujours la meme IP qui clique (meme si l'IP en question est une IP VPN).
Tu peux aussi si tu as quelques connaissances en php/html regarder le code source de la page en question et essayer de reperer l'ID du profil sur lequel tu cliques et les arguments/methode utilisés qui sont posté en passant par un proxy qui bloque les flux sortants (beef fait ca tres bien) et ainsi automatiser ton script via une autre methode que xdotool.
Enfin bref tu as de quoi t'amuser  :)

En ce qui concerne le changement de serveur vpn j'y avait aussi pensé, mais pour parvenir à le coder, encore un manque de temps pour faire les recherches adéquates... Du coup au début j'ai pensé utiliser TOR pour que l'ip soit différente à chaque réouverture mais la connexion est vraiment trop lente et aléatoire, ce qui m'a posé un problème pour déterminer le nombre de seconde de pause entre les différents ordres donnés. C'est pourquoi j'ai finis par me rabattre sur Opera.

Repérer l'ID du profil en inspectant le HTML a été ma première idée. J'y ai pensé car pour vérifier que le vote était bien pris en compte par les stats du site j'examinais le html après chaque click de façon manuelle (le pourcentage exact apparaît) :

<div class="answer-results-bar answer-results-bar-slide" ng-class="{'answer-results-bar-slide': vm.answerResultsSlide}" ng-style="{'padding-top': (answer.count / vm.question.totalVotes * 100) + '%',
                                    'bottom': -(answer.count / vm.question.totalVotes * 100) + '%'}" style="padding-top: 12.9183%; bottom: -12.9183%;">
</div>
Cependant j'ai abandonné de suite l'idée car je n'avais vraiment aucune idée de comment faire.
C'est certain que ça serait une bien meilleure solution car dans le cas d'une page dynamique où les profils bougent de place selon les stats ma méthode ne fonctionnerait pas.
Merci beaucoup pour les pistes que tu me donnes, je me penche dessus dès que j'ai un peu de temps.
 :)

Hors ligne coyotus

  • Contributeur de Kali-linux.fr
  • Membre Elite
  • *****
  • Messages: 3785
  • +263/-30
  • IN GNU WE TRUST
    • Groupe d'Utilisateurs de GNU/Linux...
Re : Script bash pour tricher à un jeu idiot en ligne
« Réponse #6 le: 05 mars 2018 à 06:51:30 »
2eme faille découverte (merci "X" pour l'info) : si l'on se connecte avec une fenêtre de navigation privée sur la page du concours, lorsque l'on referme la fenêtre et que l'on en réouvre une autre il est possible de revoter (ça ne marche qu'en navigation privée, je ne comprend pas trop pourquoi)
une histoire de cookie qui n'est pas enregistrée en cas de navigation privée peut-être.

Hors ligne lobo1512

  • Membre Junior
  • *
  • Messages: 26
  • +0/-0
Re : Script bash pour tricher à un jeu idiot en ligne
« Réponse #7 le: 05 mars 2018 à 19:07:30 »
@Coyotus Merci pour l'explication. Oui, ça parait logique car le site dit qu'il est possible de voter toute les 24h donc c'est certainement une histoire de cookie, du coup en navigation privée, plus de cookie enregistré...

@ Jhon_Doe, première amélioration rapide du script, en suivant tes conseils par rapport à la boucle je suis arrivé à ça (enfin j'ai pas suivit exactement tes conseils, je suis resté sur ma première idée du For, et ça fonctionne aussi) :
#!/bin/bash

while true; do

opera -private http://...censuré...

sleep 10

for ((i=0; i<35; i++));
do xdotool key "Down" ; done

sleep 2

xdotool mousemove 780 700
xdotool click 1

sleep 2

xdotool key ctrl+w

sleep $[($RANDOM % ($[60 - 20] + 1)) + 20] ;

 done

J'ai pensé à ça au taf cet aprem, il faut maintenant que je me penche sur comment coder un changement de serveur vpn en fin ou début de boucle. J'ai bien pensé à le faire via Xdotool dans Opera mais le nombre de vpn est très limité, il n'y en a que 3, de plus, étant donné qu'Opera ne propose pas de raccourci clavier pour changer de vpn la seule solution à laquelle je pense c'est de faire une navigation Xdotool jusqu'aux paramètres VPN d'Opera puis de faire une sorte de random avec un choix de 3 coordonnées afin qu'il clique aléatoirement sur un des 3  vpn. Mais c'est encore du bidouillage, et à force d'accumuler les à peu près, ça ne fonctionnera plus.

Pour l'instant le seul vpn que j'ai utilisé c'est via un serveur dédié que je loue. Du coup je ne vois vraiment pas comment rebondir d'un serveur à l'autre (lesquels ?). Il faut que je penche là dessus.

En ce qui concerne Beef et le PHP, je n'y connais pas grand chose, j'essais d'apprendre le Python quand j'ai un peu de temps libre, le PHP on verra plus tard. Quand aux outils de Kali, les seuls que j'ai vraiment essayé jusque là c'est aircrakng sur ma propre box et armitage en réseau local (ce qui a finis par convaincre ma compagne d'abandonner son windows10 pour installer une distri linux  ;D )

En tout cas merci beaucoup pour vos retours.