web-dev-qa-db-fra.com

Rapport du composant multimédia 'Possible IE Attaque XSS')

J'essaie de télécharger deux images sur Joomla à l'aide du composant Multimédia, mais l'une des images ne sera pas téléchargée et génère un avis -

Possible IE Attaque XSS trouvée.

La notification est générée dans Firefox, Chrome et IE en utilisant Joomla version 3.4.8.).

Noms d'images - - ms-office-2016-check-intsall-01.png - ms-office-2016-check-intsall-01-thumb.png

Je trouve cela étrange car les images sont presque identiques; la vignette sera téléchargée correctement et a été générée à partir de l'image en taille réelle, mais l'image en taille réelle ne sera pas téléchargée.

Ce que j'ai essayé -

  • Renommer l'image.
  • Prendre une copie de l'image dans l'éditeur de mon choix, supprimer l'original, puis enregistrer la nouvelle image (à la fois sous le nom d'origine et sous un nouveau nom).

J'ai comparé les données Exif des deux images, juste au cas où il y aurait du code HTML aléatoire en jeu, mais les données sont exactement les mêmes, excluant le nom/chemin de l'image et les dimensions.

Malheureusement, je ne peux pas simplement supprimer l'image et recommencer à zéro, car il s'agit d'une capture d'écran que je ne peux pas reproduire.

Quelqu'un est-il en mesure de donner un aperçu de ce problème et de suggérer de manière cruciale ce que je pourrais faire pour le résoudre?

1
David Gard

Je sais que c'est étrange (toujours dans Joomla 3.5.0). Dans la function canUpload($file, $component = 'com_media') de la classe JHelperMedia, cela se trouve dans /libraries/cms/helper/media.php, une recherche de balises sur plusieurs serveurs effectue une recherche dans l’ensemble des fichiers téléchargés. Donc, s'il y a par exemple une balise ol comme "<ol " or "<ol>" à l'intérieur du fichier d'image brute (sans distinction de casse), l'erreur Possible IE Attaque XSS trouvée = est affichée.

  • il vérifie 116 chaînes: 'abbr', 'acronyme', 'adresse', 'applet', 'zone', 'audioscope', 'base', 'basefont', 'bdo', 'bgsound', 'grand', 'blackface', 'blink', 'blockquote', 'body', 'bq', 'br', 'button', 'caption', 'centre', 'cite', 'code', 'col', 'colgroup ',' comment ',' custom ',' dd ',' del ',' dfn ',' dir ',' div ',' dl ',' dt ',' em ',' embed ',' fieldset ', 'fn', 'font', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h5', 'h6', 'head', 'hr ',' html ',' iframe ',' ilayer ',' img ',' input ',' ins ',' isindex ',' keygen ',' kbd ',' label ',' layer ',' legende ', 'li', 'limittext', 'link', 'listing', 'map', 'Marquee', 'menu', 'meta', 'multicol', 'nobr', 'noembed', 'noframes', 'noscript ',' nosmartquotes ',' objet ',' ol ',' optgroup ',' option ',' param ',' texte clair ',' pre ',' rt ',' Ruby ',' s ',' samp ', 'script', 'sélectionner', 'serveur', 'ombre', 'barre latérale', 'petit', 'spacer', 'span', 'grève', 'forte', 'style', 'sous', 'sup ',' table ',' tbody ',' td ',' textarea ',' tfoot ',' th ',' thead ',' titre ',' tr ',' tt ',' ul ',' var ',' wbr ',' xml ',' xmp ','! DOCTYPE ','! - '

Vous pouvez donc vous rendre compte à quel point il est probable qu'un coup aléatoire existe! Surtout avec des images plus grandes, et aussi avec la lettre "s" ou "S"; Un remède: vous pouvez utiliser un outil pour manipuler l'image, par exemple. le site Web tinypng.com où vous pouvez également effectuer une compression intelligente pour les images PNG et JPG. Cela créera un nouveau fichier binaire pour votre image et, si tout va bien, prendra le téléchargement.

Il existe également une fonctionnalité dans Joomla - une classe pour le téléchargement de fichiers, qui utilise également une vérification spéciale. C'est la cause, je ne peux pas utiliser cette classe de traitement de fichier JFile avec cette fonction statique pload (). L’utilisation de cette classe est très confortable, mais: ---) est appelé (= JFilterInput :: isSafeFile, et lors du téléchargement d’un fichier, par exemple. 20 MB, presque tous les fichiers Zip provoquent une erreur! Dans cette vérification, les chaînes suspectes à l'intérieur du fichier Zip brut, à savoir "inc", "phps", "classe", "php3", "php4", "txt", "dat", "tpl" et "tmpl" une pause et retourne false pour le téléchargement.

2
Tom Kuschel