Copier-coller bloqué, ou comment désactiver une fonction Javascript

Aujourd’hui, un p’tit hack rapide que je vous présente aujourd’hui pour contourner des soi-disant « sécurités » de copier-coller bloqué sur certains formulaires web, exemple.

C’est très désagréable pour l’utilisateur, et ça ne sert absolument à rien contre un attaquant qui veut bruteforcer votre formulaire puisqu’il attaquera directement via le flux HTTP (avec un proxy d’attaque type BURP ou ZAP, voir avec CURL en scripting).

S’il s’agit d’une fonctionnalité pour éviter les erreurs de saisie : j’aimerais qu’on m’explique à quel moment on contrôle une adresse e-mail comme ça ? et pas avec un mail de validation au hasard. De même, pour les champs de mots de passe, à part empêcher d’utiliser un gestionnaire de mot de passe, ça incitera juste l’utilisateur à utiliser un secret simple pour ne pas s’emmerder à saisir un truc compliqué deux fois.

Et comme il s’agit d’une protection qui bloque le copier/coller dans le navigateur, elle ne peut être exécutée que du côté de votre poste. C’est-à-dire en JavaScript, et on peut donc agir dessus très facilement. Et sans la moindre « attaque » du site internet puisque qu’on ne modifie que des éléments sur notre poste. Le serveur se contentant de recevoir son formulaire rempli à l’envoi.

Mais laisse-moi coller, conn…

Je vous ai dit que le copier-coller bloqué se contourne facilement et comme j’ai eu un exemple ce matin, je vous ai fait un petit tuto avec Chrome, Quand vous avez le message au-dessus.

  • Ouvrez le débuggeur du navigateur (pas de panique, il faut juste appuyer sur F12) ;
  • cliquez à gauche sur le « Select an element in the page to inspect it » ; et
  • Aller cliquez sur le champ du formulaire qui vous intéresse.
copier-coller bloqué pour le champ selectionné
Ouvrez le débuggeur (F12)
  • Dans la colonne de droite du débuggeur, allez sur l’onglet « Event Listeners » ; et
  • cherchez l’évènement qui génère l’action qui vous enquiquine. Ici c’est le « paste » qui déclenche le blocage qui me casse les rouleaux.
Remove de l'event listenner associé au blocage
Cliquez sur Remove
  • Cliquez sur « Remove », et magie, vous pouvez de nouveau coller dans le champ sélectionner.

Notez que vous devrez effectuer ce « Remove » pour chaque champ du formulaire ou le blocage est configuré. De plus ,Firefox n’a pas cette fonctionnalité à l’heure actuelle dans la version classique, il vous faudra la version développeur pour pouvoir faire ça. Et pour ceux qui utilisent Edge, bein, changez de navigateur…

Mais laisse-moi coller, conn… v2

S’il y a beaucoup de champs qui sont verrouillés, il peut être un peu fatiguant de passer sur chacun avec l’inspecteur d’éléments et de les désactiver un par un. Le plus simple c’est encore de virer directement le contenu de la fonction appelée lors du paste.

Pour cela, à l’étape du screenshot précédent, plutôt que de cliquer sur « remove » regardez à droite, et cliquez sur le lien vers le fichier .js associé :

Repérage de la fonction bloquant le copier coller
Ou cliquez sur le lien vers le JavaScript

Cela va vous ouvrir le fichier JavaScript associé à ligne correspondantes. Le debugger de Chrome permet de les éditer en live« . Donc supprimez gentiment là où les lignes vous gênent :

Méchant code
Virez le code relou

Un coup de Ctrl-S pour lui indiquer de prendre en compte les changements localement.

Virer le code qui bloque le copier-coller
Sauvegardez et voilà.

Réessayer de coller dans tous les champs concernés par le verrouillage. Le navigateur devrait désormais accepter le collage puisque la fonction sera appelée mais ne fera aucune action.

Considération de sécurité

Juste qu’on soit bien clair, il ne s’agit pas d’une attaque sur le site, à aucun moment vous ne faite une action agressive contre le site dans la procédure ci-dessus. Vous ne faites que bricoler l’exécution de code traité sur votre ordinateur que le site vous a envoyer.

Par contre, on désactive clairement une protection (mal) prévue par le développeur du site. Ce que la désactivation de cette protection vous permet de faire n’est pas de mon ressort. On est pas vraiment dans de la vuln, mais plutôt dans du code qui ne sert à rien.

Et voilà, l’exemple en question vient du site d’une grande salle de spectacle parisienne (dont faire un site web n’est pas évidemment pas le métier) et qui a (probablement) payé à prix d’or auprès de son prestataire de service pour le site web. Moralité, quand vous ne connaissez rien au métier d’un de vos prestataires de service, prenez en un autre pour vous conseiller idéalement, ou à minima faire auditer par un tiers compétent vos livraison… Au final, ça vous reviendra moins chère….

De mon côté j’ai pu m’inscrire et réserver mes places pour le concert d’Halestorm le 13 novembre prochain, donc tout va bien !

PS : Désolé les articles ne sortent pas aussi régulièrement que j’aimerai. Néanmoins j’ai une bonne surprise pour vous dans les cartons, plein de brouillons à finir et le rythme devrait s’améliorer vers mi-2019 (enfin j’espère…), Bref ! Byzouxx à tous !

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.