J'ai entendu dire que certaines attaques XSS peuvent être faites en postant une image sur un site qui a javascript comme attribut src. Y a-t-il des navigateurs qui me protègent contre ce type d'attaque?Quels navigateurs permettent à javascript d'être la source des tags d'image?
Répondre
De http://ha.ckers.org/xss.html:
image XSS en utilisant la directive JavaScript (IE7.0 ne supporte pas la directive JavaScript dans le contexte d'une image, mais elle le fait dans d'autres contextes, mais les éléments suivants montrent les principes qui fonctionnerait dans d'autres étiquettes aussi bien - je corrigerai probablement ce à une date ultérieure):
<IMG SRC="javascript:alert('XSS');">
support du navigateur: [IE7.0 | IE6.0 | NS8.1-IE] [NS8.1-G | FF2.0] [O9.02]
+1 aah donc il a été patché. – rook
Il suffit d'écrire la même chose ... :) Un bon! –
Je ne sais pas sur quels navigateurs détectent mais voici comment empêcher:
- nécessitant une authentification dans les paramètres GET et POST, non seulement les cookies;
- Vérification de l'en-tête HTTP Referer;
- assurer il n'y a pas de fichier crossdomain.xml donnant accès involontaire aux films Flash
- Limiter la durée de vie des cookies d'authentification
- Lors du traitement d'un POST, les paramètres d'URL ne tenez pas compte si vous savez qu'ils devraient provenir d'une forme
- nécessitant une le jeton secret, spécifique à l'utilisateur, dans toutes les soumissions de formulaire et les URL à effets secondaires empêche CSRF; le site de l'attaquant ne peut pas mettre le bon jeton dans ses soumissions.
Source: http://en.wikipedia.org/wiki/Cross-site_request_forgery#Prevention
Je sais que pas de navigateur permet javascript à exécuter dans l'attribut src=
d'une balise d'image. Si un navigateur a fait cela, il s'agit d'une vulnérabilité dans le navigateur, un numéro CVE doit être émis pour ce navigateur et il sera corrigé. Editer:I have tested this against the most recent IE8, chrome and firefox, and they have all patched this issue.
Si vous êtes encore vulnérable à cela alors vous avez BEAUCOUP de plus gros problèmes sur vos mains car un attaquant sera capable de faire exploser une coquille sur votre boîte. Toutefois, <img src=img.jpg onload="alert(/xss/)"/>
peut être utilisé pour exécuter javascript. Ainsi, si un attaquant peut contrôler une partie de la source, il pourrait injecter une chaîne comme celle-ci: src="fake.jpg" onload="alert(/xss/)"
. C'est pourquoi htmlspeicalchars($image_location,ENT_QUOTES);
devrait être utilisé au lieu de htmlspecialchars($image_location)
. Une autre approche consiste à utiliser Html Purifier qui est capable de supprimer javascript comme ça automatiquement.
Si vous souhaitez protéger votre propre navigateur de XSS, vous devez utiliser noscript.
Autoriser les balises d'image pourrait être utilisé pour exploiter XSRF basé sur GET. Ceci est particulièrement mauvais si le logiciel effectue seulement une vérification de référence. Cependant, la plupart des applications utilisent une protection xsrf basée sur des jetons, ce qui rend les requêtes immunisées contre cette attaque. Cependant, votre site pourrait être utilisé pour attaquer des sites d'autres personnes avec des requêtes GET falsifiées mais ce n'est pas une menace très sérieuse. Une méthode de protection consiste à s'assurer qu'il existe réellement une image à cet emplacement et à rejeter la balise img si aucune image n'existe.
Etes-vous sûr? Parce que selon http://elf.org/essay/inline-image.html, il y avait un temps au moins dans le passé où vous pouviez utiliser le schéma d'URL 'javascript:' pour alimenter les données d'image ... –
@Weston C Oui, je suis 100% à ce sujet, ce à quoi cet article fait référence est de taper 'javascript: alert ('js!')' Dans votre barre d'adresse. Si vous ne me croyez pas, essayez d'écrire un fichier .html avec un tag d'image qui contient 'javascript:'. – rook
Je vais devoir être en désaccord @Rook. J'ai vu cela mentionné dans plusieurs endroits. De ce que je peux dire c'était seulement un problème il y a quelques années donc je suppose que seuls les navigateurs plus anciens ont cette vulnérabilité, mais ce serait bien d'avoir une liste. –
Mozilla Firefox avec addon NoScript. Essentiellement, vous oblige à exécuter manuellement javascripts à partir de sources inconnues.
cool je vous donnerais un +1 si je ne l'ai pas déjà posté. – rook
- 1. Pourquoi les navigateurs permettent-ils de désactiver Javascript?
- 2. JavaScript et __proto__ - quels navigateurs l'utilisent?
- 3. Quels contrôles permettent d'appeler un événement?
- 4. Quels navigateurs supportent encore les expressions CSS
- 5. Découvrez quels navigateurs sont installés?
- 6. Eval instance en Javascript des navigateurs autour
- 7. Quels hôtes SVN permettent l'importation/exportation de référentiel?
- 8. quels modèles permettent la persistance des objets en utilisant les bases de données sql et nosql?
- 9. Accès Javascript au correcteur orthographique des navigateurs
- 10. Javascript REGEX: Tags
- 11. Quels produits Source Controls Open Source s'intègrent à Microsoft VB6?
- 12. Quels sont les navigateurs compatibles avec "! Important"?
- 13. Supprimer le cache des navigateurs en javascript
- 14. Versions javascript et javascript des navigateurs web fonctionnels
- 15. Quels navigateurs web supportent Gelocation via HTML5?
- 16. quels navigateurs n'envoient pas d'informations de référence?
- 17. Quels sont les tags HTML valides dans les flux RSS?
- 18. RoR: Marquer des tags avec d'autres tags
- 19. Problème ckeditor: tags html supplémentaires dans la source
- 20. Quels navigateurs Web posent le plus de problèmes d'incompatibilité?
- 21. File API: quels navigateurs supportent la méthode slice?
- 22. Certains navigateurs ne reconnaissent pas les méta-tags ajoutés via Javascript
- 23. Tags JavaScript, performance et W3C
- 24. Quels navigateurs ont des problèmes de mise en cache des réponses XMLHTTPRequest?
- 25. quels combinés prennent en charge javascript/AJAX
- 26. Quels événements sont déclenchés lorsqu'un utilisateur sélectionne dans la liste déroulante des navigateurs stockés?
- 27. Quels tags <meta> sont utiles et lesquels?
- 28. Fonction javascript pour différents navigateurs
- 29. Accès Tags serveur à l'intérieur Javascript dans le projet MVC
- 30. Quels navigateurs ne supportent pas les gifs animés?
Vous pouvez également faire une attaque XSRF ("sea-surf") en faisant pointer l'attribut 'src' sur certaines URL. http://en.wikipedia.org/wiki/Cross-site_request_forgery – sigint