[Google Chrome] – Télécharger une extension chrome sans avoir a l’installer

 

Bonjour à tous,

 

Je vous présente mes excuses  à l'avance pour les semaines qui vont suivre.
Entre quelques problèmes d'ordre juridique et le fait que je vais pour la deuxième fois être papa, je risque de sauter une semaine ou deux de publication :s

Mais attaquons sans attendre le vif du sujet !
Comment télécharger une extension du store de Google Chrome sans avoir à l'installer ?

Tout d'abord le "pourquoi" ?

Pourquoi se donner la peine de regarder le contenu d'une extension ...
La confiance ?
Lorsque vous installez une extension, au moment même où celle-ci est installée, selon les permissions qu'elle a, celle-ci pourra copier toutes vos données (historiques, cookies, mots de passe, et autres données de navigations)

D'un point de vue personnel, j'aime bien regarder par curiosité les choses que je vais installer sur mon ordinateur, afin d'éviter toute forme d'exfiltration de données.

Ainsi donc, une extension Chrome ...
Je rectifie, une "WebExtension", n'est rien d'autre qu'un ensemble de fichiers Javascript, Html, Css qui est stocké dans une archive zip.

Il est donc assez rapide de voir si le code source est complètement "immonde" ... mal optimisé ...  si le développeur a cherché à "cacher" / Obffusquer son code pour masquer des actions malveillantes.

 

Ensuite le "Comment" ?

Oui je le sais, il existe des plateformes toute faite, ou encore des plugins qui le font.
Quoique ... installer un plugin ou passer par un site internet qui n'est pas de "google" ... pour télécharger des plugins ...
Il y a là un côté un peu "joueur" : Qui pourrait vous garantir qu'il s'agit là de l'extension "originale" ?

La méthode que je vous propose consiste à directement télécharger l'extension du "store" officiel de Google.

Prenons un exemple :
Je souhaite télécharger "DashLane", qui est un gestionnaire de mot de passes connu.
Je me rends donc sur la page du plugin :
https://chrome.google.com/webstore/detail/dashlane-password-manager/fdjamakpfbbddfjaooikfcpapjohcfmg?hl=fr

Sur cette page, je vais récupérer dans la barre d'adresse, l'identifiant de l'extension (une série de lettres à la fin de l'url) :

https://chrome.google.com/webstore/detail/dashlane-password-manager/fdjamakpfbbddfjaooikfcpapjohcfmg?hl=fr

J'utilise et modifie le lien de téléchargement suivant, pour y mettre l'identifiant de l'extension :

https://clients2.google.com/service/update2/crx?response=redirect&prodversion=666&x=id%3D<identifiant de l'extension>%26installsource%3Dondemand%26uc

Je pourrais donc télécharger l'extension en ouvrant ce lien :
https://clients2.google.com/service/update2/crx?response=redirect&prodversion=666&x=id%3Dfdjamakpfbbddfjaooikfcpapjohcfmg%26installsource%3Dondemand%26uc

 

Le Script

Comme souvent, je vous ai préparé un petit script assez court pour que vous puissiez le comprendre et l'adapter à vos besoins.

var a  	 = document.createElement('a'),
	id 	 = document.location.toString().match(/\/([A-za-z]*)(\?|$)/)[1],
	name = document.getElementsByTagName('title')[0].textContent.toString()+".zip", 
	url	 = "https://clients2.google.com/service/update2/crx?response=redirect&prodversion=150&x=id%3D"+id+"%26installsource%3Dondemand%26uc";

a.href 	   = url;
a.download = name;

a.click();

Il vous suffira de vous rendre sur la page du plugin que vous souhaitez télécharger.
Puis de copier/coller ce script dans la console (touche F12, onglet console), et enfin de valider avec la touche "entrée" de votre clavier.
Le téléchargement devrait démarrer.

Conclusion

J'espère que vous pourrez vous amuser un petit peu avec cet article.
L'idéale serait de mettre en place une plateforme qui permet de suivre l'évolution de chacune des extensions (je donne des idées si jamais il y a des volontaires).
N'hésitez pas à commenter, je ne réponds pas toujours, mais ça permet de donner une dynamique entre lecteurs et éventuellement de lancer des idées, des sujets ;)

Partagez ce contenu

Laisser une réponse

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