Firefox a été "reverse engineering" de nombreuses fonctionnalités à Internet Explorer aventuré à libérer les dernières spécifications du W3C - y compris le déjà mentionné oncopy / oncut / événements onpaste. Une très spéciale de ces problèmes est la mise en œuvre de showModalDialog (). Imaginez que cette fonctionnalité soit comme un message d'alerte - mais seulement rempli avec HTML arbitraire via une URL, dataURI ou javascript: URI.
- <Html>
- <Head>
- <Script>
- ( ) { onfocus = function () (
- ; name = "javascript: avec (ce) avec (document) write (cookie) ';
- showModalDialog (
- nom,
- null,
- «sans fioritures: Non, dialogWidth: 4000%, dialogHeight: 2000%, des barres: 0, status: 0, resizable: 0, edge: sunken '
- );
- ; onfocus = null;
- )
- </ Script>
- </ Head>
- <Body>
- </ Body>
- </ Html>
as triggering event. Intéressant, c'est d'une part qu'il est possible de contourner le bloqueur de fenêtres publicitaires dans la plupart des communiqués de navigateur récent en choisissant simplement window.onfocus comme événement déclenchant. Firefox 3 représente un avertissement sur le point de vue, originaires d'un pop up a été bloqué -, mais rend la fenêtre modale de toute façon. seems to be considered as an event that has to be triggered by user interaction so the pop up blocker lets it pass – like with onclick or ondblclick . Si intervenir suffisamment tôt, il devance également un window.onload. Onfocus semble être considérée comme un événement qui doit être déclenché par interaction avec l'utilisateur si la fenêtre pop up blocker laisse passer - comme avec onclick ou ondblclick. fires as soon as the window's document is starting to load. Et ne pas oublier - onfocus sur les incendies de fenêtre dès que le document de la fenêtre est en train de charger.
Le problème majeur est le fait que le showModalDialog () est soit un membre de la fenêtre et peut être paramétrée. Il est donc possible de laisser un pop up GUI élément qui pourrait donner à l'utilisateur l'impression que c'est une instance du navigateur lui-même. Il suffit d'ajouter des boutons navigateur le plus commun en tant que carte de l'image - en fonction de l'agent utilisé l'utilisateur, à la fenêtre de la bonne dimension et la position et la plupart des utilisateurs vont tomber pour lui.
En outre, le dialogue étant donné naissance annule toutes l'exécution de code se passe entre le moment de la ponte et le moment de la modal est de nouveau fermé. Le navigateur peut accéder à la fenêtre de départ d'objet ainsi que des méthodes comme dump ().
Conclusion
ShowModalDialog () est l'une des techniques plus ou moins inutile et standard agnostique qui est prédestiné pour la pêche sans même une utilisation en situation réelle pour la plupart sinon toutes les applications. Développeurs au courant de sécurité pourrait veux m'assurer en écrasant cette méthode, qu'une faille XSS sur leur plate-forme a moins d'impact que nécessaire. Merci à la souplesse du langage JavaScript, il est plus facile que prévu - vient de mettre showModalDialog = null à la première étape de vos DOM qui est possible - le plus parfaitement à un endroit où aucune entrée d'utilisateur est attendue avant. Safari et Opera sont d'ailleurs pas affecté - ils simplement ignorer l'appel de méthode ou de jeter une erreur car il n'est pas mis en œuvre.
Publié par <malicious> </ balise>
1

























































