2010-02-08 5 views
5

Je veux savoir s'il est possible ou non d'injecter du JavaScript dans le contrôle .NET WebBrowser depuis l'extérieur de l'application en cours d'exécution?Injection JavaScript externe

Merci

STW


Précision: Je voulais savoir si quelqu'un peut mettre la main sur le processus interne des composants emballés et insérer manuellement ce qu'ils aiment dans le "navigateur "partie de l'application.

+0

J'espère que pas :) –

Répondre

4

Ce n'est pas différent pour WebBrowser d'Internet Explorer. Une fois qu'une application peut obtenir le handle de fenêtre pour WB, elle peut utiliser LresultFromObject() pour accéder à l'interface Accessibility, celle utilisée par les lecteurs d'écran. J'ai seen this used pour obtenir un pointeur d'interface IHmtlDocument2, donnant accès au DOM. Bien sûr, une fois qu'une application obtient assez de privilèges pour le faire, il y aura beaucoup d'autres façons d'accomplir la même chose. Concentrez-vous sur la sécurisation d'IE en premier, WebBrowser suivra puisque c'est simplement IE sans la fenêtre frame.

0

Pouvez-vous clarifier quel est le vecteur d'attaque qui vous inquiète?

'Qui' êtes-vous inquiet de pouvoir injecter des données dans l'objet .NET WebBrowser: a) l'utilisateur qui exécute l'application? b) un logiciel fonctionnant sous la même identité c) quelqu'un qui renifle le trafic html (entre l'utilisateur et le serveur web) et (peut-être) le modifie d) un autre site ouvert sur un autre onglet?

Vous devez essentiellement faire un exercice de modèle de menace de votre cas d'utilisation et de partager avec nous les résultats (voici quelques informations sur la modélisation des menaces: http://en.wikipedia.org/wiki/Threat_model)

0

Si lorsque vous demandez sur votre clarification » ... Je veux savoir si quelqu'un peut se procurer le processus interne des composants emballés et insérer manuellement ce qu'ils aiment dans la partie "navigateur" de l'application ... " vous voulez dire '... un autre processus qui se déroule sur votre ordinateur comme le même utilisateur (disons par exemple une copie illicite de WinZip) ... 'alors OUI ce sera possible.

Dans Windows, il n'y a AUCUNE séparation entre les processus appartenant au même utilisateur, donc si vous avez une application XYZ qui contient un contrôle WebBrowser, alors une autre application (l'application WinZip malveillante) sera capable de se connecter à ce processus. manipuler le contenu de ce que vous voyez sur ce WebBrowser.

(notez que Vista/Windows 7 ont ajouté l'UAC (User Access Control) que je crois ne l'empêche pas de se produire)

+0

ai-je reçu ce droit? Tout processus démarré avec mon utilisateur peut-il manipuler tout autre processus démarré avec mon utilisateur et donc changer ou en prendre des données? – TheChange

+0

oui c'est correct (je pense qu'il y a quelques mises en garde qui nécessitent certaines solutions de contournement si UAC est utilisé (notez que Microsoft a confirmé que UAC n'est pas une technologie d'isolation de sécurité)) –