{Spotify} – Comment et pourquoi créer des comptes à la volée

 

Salut à tous,

 

Une longue pause pour moi sur le blog, je ne vous ai pas donné trop de nouvelle car j'étais très fatigué.
Je vous parlais dernièrement de la création d'un HackerSpace à Nantes, nous avons commencé avec quelques amis à faire nos premiers pas dans ce projet. J'ai donc pu découvrir et aider lors d'un "Café Repair" (si vous ne connaissez pas je vous invite à jeter un œil ici https://repaircafe.org/fr/), cela nous a permis de constater qu'il était parfaitement possible de disposer de locaux à la journée sans mettre trop à la poche.
De fil en aiguille des projets commence à sortir de notre petit début de "communauté" !
C'est génial car cela me permettra dans certains cas de vous faire des feedbacks, et aussi de trouver de nouveaux thèmes pour mes articles.

Je démarre également une VAE à l'AFPA afin de valider enfin un diplôme BAC+4 après plusieurs années dans le monde professionnel ! En soit ça n'est pas vraiment quelques choses qui m'est utile pour trouver du boulot, mais ça reste quand même une certaine reconnaissance d'expertise.

Entrons à présent si vous le voulez bien dans le cœur du sujet !
Les articles que j'écris sont dans 98% des cas liés à mon histoire et aux gens que je rencontre.
C'est ainsi que m'est venu l'idée de ce sujet. On m'a demandé s'il était possible de profiter d'un abonnement "premium" spotify ... sans payer bien entendu !

La Case Prison

Lorsque mon petit dernier est né, j'ai dû me rendre au 36 rue du Bastion .. anciennement 36 quai des orfèvres ...

Le 36, quai des Orfèvres est le bâtiment où se trouvaient le siège, l'état-major et les services communs de la direction régionale de la police judiciaire de la préfecture de police de Paris. (Wikipedia)

Lorsque je dis j'ai dû me rendre, c'est surtout que l'on m'a convoqué car j'avais écrit un article sur la manière de renouveler la période d'essai de manière indéfinie de l'application Coyote.
Tout ça pour vous dire que parfois la réalité peut vous rattraper très vite, et que les articles que j'écris n'ont rien d'autre qu'une vocation pédagogique.
Si je vous dis "Comment profiter gratuitement de" ... il s'agit de montrer une méthodologie en l'illustrant par un cas concret.
Je ne vous incite pas à le reproduire chez vous, mais simplement à comprendre le "Comment ça marche".
Un peu comme un gars qui vous expliquerait les trucs et astuces qu'il y a derrière un tour de magie.

 

Pourquoi créer plusieurs comptes sur Spotify

Spotify permet à n'importe quel compte de profiter d'une période d'essai de 30 jours ...
Avoir plusieurs comptes, permet donc de profiter en continu du service Premium offert par Spotify

Si vous avez suivi l'actualité cette année, vous aurez surement vu celle concernant un hacker Bulgare qui est devenu millionnaire en arnaquant "légalement" Spotify !

Si vous n'avez pas lu cette info, je vais vous résumer la chose ici :
Le Hacker en question a créé plusieurs comptes "Premium" et les a programmés pour écouter en boucle, 24 heures sur 24 et 7 jours sur 7,  une playlist qu'il avait mise en ligne...
Pour info, Spotify rémunère 0,004 dollar par titre écouté ... 
Grâce à cette astuce il aurait amassé pas loin d'un million de dollars.

Bref on peut imaginer tout un tas  d'usage moins illégal aussi ... se créer un fan-club de 1 million d'abonnés par exemple ... etc ...

 

Le Challenge pour créer des comptes à la volée

Un truc qui m'amuse beaucoup, c'est le fait que des plateformes aussi grosses que Spotify se limitent à bloquer les robots uniquement sur leur plateforme Web !
Il est vrai que le captcha Google en refroidit plus d'un, tant il est performant dans la reconnaissance de "clics programmés" pour détecter les robots ...

Mais là où ça devient amusant c'est qu'il est parfaitement possible de créer des comptes depuis un smartphone ... via l'application mobile ... ou la version "bureau" (Linux : snap install spotify).

Ici ... point de Captcha !
Il suffit juste de faire un peu de reverse engineering pour étudier comment la magie opère.

 

L'étude de l'application de bureau et de l'application mobile

Après avoir tenté de faire quelques petites bricoles avec un désassembleur et un éditeur hexadécimale, je me suis dit que ça n'était pas la bonne approche...
Qu'il valait mieux étudier le réseau !
Aujourd'hui la sécurité avant tout, fait que les éditeurs se mettent de plus en plus à travailler en HTTPS, j'ai donc tenté de rediriger tout ce qui sortait sur le port 443 vers le port 80 ... traduction : j'ai essayé de forcer l'application à communiquer en "clair" et non en chiffré !
ça n'a pas été très concluant non plus :'(
Mais j'ai quand même pu récupérer ce domaine "apresolve.spotify.com"

Par déduction, il est assez simple de comprendre que Spotify consulte ici la liste des serveurs sur lesquels il peut s'appuyer pour communiquer.
Il essaye un par un les serveurs de cette liste, jusqu'à en trouver un qui soit disponible...
Là aussi ... pourquoi fermer une porte si on laisse la fenêtre ouverte ....

Cette liste contient des serveurs configurés sur le port 80 !

J'ai donc en éditant mon fichier hosts (/etc/hosts  pour Linux ou C:\Windows\System32\drivers\etc\hosts pour Windows) fait en sorte que l'application Spotify récupère cette liste depuis mon ordinateur et non auprès du vrai serveur "apresolve.spotify.com".

Ce qui m'a permis de ne renvoyer à l'application ... que la liste des serveurs sur le port 80 !
Pour tout vous avouer cette manipulation n'a pas été très utile ..
Mais toujours en analysant le réseau j'ai pu obtenir le fruit de tous ces efforts !

En récupérant une ancienne version de l'application mobile (moins sécurisé) ...
J'ai constaté que Spotify avait gardé la rétrocompatibilité, pour permettre aux gens qui ne mettent jamais à jour leurs applications, ou bien qui sont sur de vieux smartphones / tablettes dans de vieilles versions android, d'avoir l'application qui fonctionne !
Ainsi avec une application comme "Packet Capture", vous pourrez voir ce que votre application envoie et reçoit !
Et paf ! ça fait des Chocapics !!!

Une simple requête POST directement sur le serveur de Spotify ... et le compte est créé, en une seule requête !

Il y a un paramètre "key" ... j'ai pensé à un token temporaire, cependant, celui-ci fonctionne tout le temps ... après je pense qu'il s'agit d'un moyen d'identifier la provenance de création des comptes, permettant ainsi de désactivé tous les comptes qui ont été créé avec ce token.

Il devient possible de créer des dizaines ... centaines de comptes à la minute !

Mais là vous allez me dire ... mais comment faire pour avoir des centaines d'adresses emails ?
En réalité, il n'en suffit que d'une seule, un compte GMAIL, qui vous permet de créer des alias à la volée.
Si vous avez une adresse email : jean-pierre@gmail.com
Vous pourrez donner à n'importe qui cette adresse en préfixant "jean-pierre" par un "+" suivi de ce que vous voulez :

  • jean-pierre+123@gmail.com
  • jean-pierre+456@gmail.com
  • jean-pierre+789@gmail.com
  • jean-pierre+koffe@gmail.com
  • ...

Vous n'avez besoin de rien faire d'autre que d'écrire "+" suivi de ce que vous voulez, et hop les mails seront envoyés à votre gmail ! Vous aurez créé dynamiquement ce que l'on appelle un alias :)

A partir de là, vous pouvez faire ce que vous voulez ;)

 

Le Script final

Comme d'habitude je tiens à rappeler qu''il s'agit d'un "Hack" temporaire.
Spotify mettra très probablement en place une sécurité qui rendra ce script obsolète, donc ne venez pas me mettre en 2020 que ce script / et ou cette méthode ne fonctionne pas

(function(){
	/*
	*	Dave-Hill (c) 2018-2019
	*	Dyrk.org
	*/
    if (!(/https\:\/\/www\.spotify\.com.*?/.exec(document.location.toString()))) {
		return alert("Vous devez être sur le site de Spotify pour réaliser le Hack");
	}
	if (!localStorage.getItem('email')){
		localStorage.setItem('email', 	prompt("Adresse Gmail à utiliser pour la création des comptes"));
		localStorage.setItem('mdp',	 	prompt("Mot de passe à définir par défaut pour la création des comptes\nIl doit faire plus de 8 caractères"));
	}
    var gmail=localStorage.getItem('email') ,
		password=localStorage.getItem('mdp'),
        username= encodeURIComponent([gmail.split('@')[0], '+', 
        		  Math.floor((Math.random() * 1000) +1)].join('')),
        request=new XMLHttpRequest(), params="", params_object = {
            "email"			 : username+'@gmail.com',
            "username"		 : username,
            "password_repeat": password,
            "password"	 	 : password,
            "postal_code"	 : "1",
            "gender"	 	 : Math.floor((Math.random() * 2)) == 0 ? 'male':'female',
            "birth_day"  	 : Math.floor((Math.random() * 30) + 1),
            "birth_month"	 : Math.floor((Math.random() * 12) + 1),
            "birth_year" 	 : Math.floor((Math.random() * 50) + 1950),
            "creation_point" : "client_mobile",
            "iagree"         : "1",
            "key"            : "142b583129b2df829de3656f9eb484e6", 
            "creation_flow"  : "client_mobile",
            "invitecode"     : ""
        };
    for (var i in params_object){ params+=i+"="+params_object[i]+"&"; }
    request.open('POST','https://www.spotify.com/fr/xhr/json/sign-up/');
    request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    request.addEventListener('load', function(e){  
        var test = JSON.parse(e.target.response).errors,
			html = document.getElementsByTagName('html')[0], 
			div = document.createElement('div');
        if (test) {
				alert("Erreur \n"+JSON.stringify(test));
		}
		else {
				html.textContent = "";
				html.appendChild(div);
				div.setAttribute('style','position:fixed;top:50%;left:5%;width:300px;height:200px;background:#FFF;border:1px solid black;border-radius:20px;padding:10px;font-size:24px');
				html.setAttribute('style', 'background:100% url("https://www.highreshdwallpapers.com/wp-content/uploads/2017/05/Sexy-Cheeky-Wallpaper.jpg")');
				div.textContent = "username : "+decodeURIComponent(username)+"@gmail.com   - password : "+password+
									" - Veuillez confirmer votre adresse mail dans votre boite mail";
				html.setAttribute('style', 
				'background:100% 100% url("https://d2v9y0dukr6mq2.cloudfront.net/video/thumbnail/rhqunD2Gioflxfgx/girl-dj-sexy-dancing-and-smiling-with-joy-slow-motion_rtjg3io4g_thumbnail-full01.png");');
		}
    });
    request.send(params);
})()

 

Conclusion

J'espère que cet article vous aura plu, j'ai pris pas mal de temps pour vous l'écrire, et passé pas mal de temps sur le sujet ^^
Merci à tous de votre fidélité, et aux encouragements que je reçois par mail, et par commentaire.
Petit rappel, cet article n'a pas vocation à créer des bandits, mais à permettre aux gens de comprendre un peu la manière dont les "hackers" procèdent ...
Une meilleure compréhension d'une faille de sécurité, permet de s'en prémunir.
Ici, la faille réside dans le fait que Spotify garde en vie les vielles versions d'Android ...
Et permettent des création de compte sans protection par Captcha, contraindre les utilisateurs à passer par la plateforme Web, ce n'est pas "user friendly" mais ça sécurise.
Il faut également se prémunir des alias Google et / ou limiter le nombre de création de compte possible avec des alias.

Partagez ce contenu

13 comments

  • Pingback: {Spotify} – Comment et pourquoi créer des comptes à la volée – SVNET Libre

  • Pingback: {Spotify} – Comment et pourquoi créer des comptes à la volée - My Tiny Tools

  • Super article ! Intéressant de voir ton cheminement de compréhension/reverse de l’app, ça donne des idées :3

  • L’idée est bonne, mais hélas il faut ajouter un moyen de paiement valide pour profiter des 30 jours, donc à moins que tu as une solution pour fournir 200 CB, c’est impossible.

    • il suffit de générer des cartes de crédit de test valide tu peux retrouver facilement des outils qui génèrent plusieurs centaines de cartes en quelques secondes ;)
      http://www.getcreditcardnumbers.com/

       

    • Si ils se basent sur la validité théorique du n° de carde il existe pas mal de générateurs.

      Celui-ci par exemple. Tu fais une génération en masse au format que tu veux et ça fait des chocapics.

      • Hello,

        Très bon article comme d’habitude !
        Effectivement, le mode premium n’est accessible qu’après validation d’un abonnement mensuel dont le premier mois et gratuit.

        Spotify vérifie que l’argent existe bien sur la carte ou sur le compte paypal, car les générateurs de fake CB ne fonctionne pas, et un compte paypal sans CB non plus.

        Tant pis !

  • Salut,

    Super article comme d’habitude.

    Carte ou pas carte c’est le principe à utilisé qui intéressant et instructif .

    Encore merci à toi !

     

     

  • Merci pour le script !

    Ensuite on peut utiliser https://freeyourmusic.com/ pour faire du transfère de ses listes de lectures d’un compte Spotify vers heu… Spotify par exemple ;) (déjà essayé)

    Pour les cartes de crédits on peut utiliser les neo banques pour avoir une e-carte valide pendant quelque temps ? (fortuneo :
    Payez sur Internet avec un numéro de carte virtuelle

    Avec le Paiement sécurisé Internet, obtenez en quelques clics un numéro de carte virtuelle que vous pourrez utiliser pour régler vos achats en ligne, sans communiquer votre numéro de carte réelle.

    Ce numéro virtuel unique à chaque paiement est :

    Différent de celui de votre carte réelle.
    Limité au montant de votre achat.

    Vous pouvez générer un numéro de carte virtuelle à partir du site ou des applications mobiles Fortuneo.

    L’obtention d’un numéro de carte virtuelle est gratuite. Vous continuez à bénéficier des garanties d’assurance, d’assistance et des services liés à votre carte de paiement.

    Vous ne pouvez utiliser ce service que pour les cartes dont vous êtes titulaire.

    )

    je vais essayer tout ça !

    • Pas encore essayé mais dans l’idée il y a aussi les Transcash, qui sont des cartes bancaires relié à aucun compte bancaire.
      L’idée est de disposer d’une carte bancaire avec comme solde uniquement l’argent que vous avez créditez dessus. L’idée est la même que pour les cartes rechargeables téléphoniques.

  • Je rencontre un problème qui signale un username trop long, peux vous m’aider? :)

  • Bravo pour cet article et les talents de développeur !

  • Hey, I have one new method for getting free Spotify account. I was searching for a Spotify account for free… So I got news about Spotify free 1-month trial by using the credit card while registering the Spotify sign up form. So I don’t have any credit card. So I try to search the credit card number and luckily I got the site called http://www.keycardgen.com where I will generate credit card detail and verify my Spotify account. Now enjoying my Spotify.

Laisser une réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *