Récemment, lors d’un entretien pour une société de cybersécurité, j’ai parlé de mes vieux scripts, principalement écrits en Bash. Et j’ai redécouvert un script très court qui a une histoire et qui montre comment une petite paresse peut mener à l’écriture de code. Lorsque vous voulez coder quelque chose mais que vous ne savez pas quoi faire, parce que « ceci ou cela existe déjà donc c’est inutile », cela peut être un bon point de départ.
Depuis 2013, un VPN gratuit est disponible pour tous, vpnbook.com (Mais soyez prudent lorsque vous utilisez un VPN gratuit). Ils fournissent quelques fichiers ovpn pour les connexions TCP et UDP. Un nom d’utilisateur et un mot de passe pour se connecter à leur VPN sont affichés sur la même page, vous devez les utiliser sur votre client VPN pour obtenir l’accès.
En 2016 lorsque j’ai découvert ce site, il était encore possible à l’époque de copier/coller le code, il était écrit en texte comme vous pouvez le voir si vous essayez de le sélectionner sur cette archive prise à la même période : Free VPN Accounts • 100% Free PPTP and OpenVPN Service (archive.org)
A cette époque, parce que j’en avais marre d’ouvrir le navigateur web ou un nouvel onglet pour aller sur cette page tous les jours, de copier le mot de passe écrit en bas de page, d’ouvrir un terminal, d’exécuter OpenVPN puis de coller le mot de passe (qui n’était valable que pour quelques jours, le nom d’utilisateur étant toujours le même), j’ai décidé de simplifier les choses.
Il était possible de sélectionner le texte avec le pointeur comme on peut le voir ci-dessous, ce qui signifie qu’il était possible de le saisir directement dans le code source.
Ensuite, lorsque la page web était ouverte, vous deviez la copier avec Ctrl+C ou un clic droit et l’option « Copier », et la coller dans votre client VPN, qu’il s’agisse d’une interface de ligne de commande ou d’un mode GUI.
J’ai donc écrit un petit script pour récupérer le mot de passe et exécuter le CLI OpenVPN d’une traite : passvpn (Ce profil Github est mon ancien profil, auquel je ne peux plus accéder. Le nouveau est ici).
Le but de ce script était de capturer le mot de passe en utilisant deux expressions régulières simples. Premièrement, il récupère le code source avec wget, et deuxièmement, il recherche le mot « Password » dans le code source HTML. Pour le trouver, il recherche le troisième symbole « moins que » (<) en utilisant la commande cut (cut -d '<' -f 3
), recherche le deuxième symbole « plus que » (>) toujours avec la commande cut (cut -d '>' -f 2
), et récupère la chaîne écrite entre les deux.
Ainsi, en exécutant ce script, le mot de passe était affiché directement dans le terminal avant d’exécuter OpenVPN. Je n’avais plus qu’à taper le passcode écrit en haut.
A titre d’exemple, je viens d’adapter le script pour obtenir le code source de la version archivée de VPNBook, mentionnée ci-dessus, sur la Wayback Machine (L’avertissement pour la méthode dépréciée dans le fichier ovpn n’était pas affiché en 2016).
Depuis quelques années, ce script n’est plus utilisable, car VPNBook a fait un changement invisible sur leur site web. La police utilisée pour la chaîne de caractères est similaire mais elle est maintenant affichée sous forme d’image, comme on peut le voir si on essaie de sélectionner le mot de passe sur le site actuel.
Est-ce une coïncidence ou ont-ils modifié leur page à cause de mon script ? Je n’ai jamais eu de réponse claire à ce sujet, mais il serait amusant que je leur fasse modifier leur page à cause de ma paresse pour les choses récurrentes. La raison de cette modification pourrait être de nous forcer à visiter leur site web et d’afficher leurs publicités, même si je n’en ai jamais vu aucune, et/ou de nous amener au formulaire de don sur le côté droit de la page web, peut-être.
Soyez paresseux, soyez créatifs et essayez d’automatiser toutes les actions répétitives de votre vie quotidienne.