Continuant la discussion de Est-il sûr de permettre les téléchargements HTML ? :
Les réponses dans le fil étaient de la forme “pourquoi voudriez-vous cela ?”. J’ai une réponse.
Notre forum est dédié au développement de jeux basés sur le web. J’aimerais que nos utilisateurs puissent distribuer leurs jeux les uns aux autres en utilisant le forum. (Mais pas si cela cause une attaque XSS.)
Tant que les fichiers HTML téléchargés ont toujours “Content-Disposition: attachment” (comme il semble que ce soit le cas), je ne connais aucune attaque XSS que cela permettrait, ni même une nouvelle attaque de phishing. Les liens vers le fichier HTML forceront son téléchargement, et non son ouverture directe sur le site du forum.
(Je note que Gmail permet aux utilisateurs de télécharger des pièces jointes de fichiers HTML ; cela semble bien.)
Bien sûr, les attaques de phishing peuvent être extrêmement simplistes. Aujourd’hui, n’importe qui au niveau TL1 peut envoyer un message privé à un utilisateur du forum et dire : “Bonjour, je suis l’administrateur de ce forum. Veuillez m’envoyer votre mot de passe.” De même, ils peuvent déjà créer un site web à evil.example.com conçu pour ressembler exactement à la page de connexion du forum, et ils pourraient essayer de tromper les utilisateurs pour qu’ils cliquent sur ce lien et y tapent leur mot de passe.
Je suppose qu’ils pourraient également essayer de le faire avec une pièce jointe, en disant : “Bonjour, je gère ce forum, veuillez télécharger ce fichier et l’ouvrir, d’accord ?” et ce fichier pourrait inclure une maquette de la page de connexion du forum.
Mais télécharger un fichier HTML et double-cliquer dessus ne serait pas plus dangereux du point de vue du phishing que de permettre aux utilisateurs de cliquer sur un lien vers un site malveillant. Et, comme c’est plus compliqué, cela trompera probablement moins d’utilisateurs que l’envoi de liens vers un site de phishing (la méthode traditionnelle).
Alors, y a-t-il un risque de XSS ici ? Ou une attaque de phishing subtile que j’ignore ?