This page has been robot translated, sorry for typos if any. Original content here.

INTERFACE WWW E-MAIL

Comme les méthodes considérées dans cet article sont connues de longue date par des utilisateurs expérimentés, les vulnérabilités qui permettent de percer complètement avec une garantie absolue sont éliminées partout. Elle vise principalement à introduire les principes du travail de messagerie Web (et ses failles de sécurité) aux débutants.

Considérez par vous-même le principe selon lequel la boîte aux lettres est piratée via WWW. Nous possédons le serveur www.po4ta.ru et nous devons également pénétrer dans la boîte aux lettres utilisateur@po4ta.ru . Nous enregistrons un compte sur ce serveur bla bla test@po4ta.ru . Nous occupons également l’occupation principale des paramètres de notre nouvelle boîte aux lettres. L’option "Changer le mot de passe" nous intéresse particulièrement. Il est proposé de saisir le nouveau mot de passe, de le confirmer et d’envoyer les données.

Changer le mot de passe
Entrez le nouveau mot de passe:
Répétez la saisie:


Le code d'une telle page HTML pourrait ressembler à ceci:

Change_pass.php est un script côté serveur qui accepte les valeurs de pass1, pass2 (mot de passe avec confirmation) et nom d'utilisateur (contenu d'un champ masqué indiquant le champ dans lequel le mot de passe est modifié).
Si nous formons une demande GET correspondante, la ligne suivante sera reçue:
http://po4ta.ru/change_pass.php?username=test&pass1=NEW_PASSWORK_passpass==NEW_PASSWORD

Nous allons maintenant insérer ce lien dans la barre d'adresse de la fenêtre actuelle de notre navigateur et également envoyer les données au serveur. En conséquence, nous obtenons un avis indiquant que le mot de passe de la zone test@po4ta.ru a été modifié avec succès. Et si vous essayez de simuler la valeur de la variable de nom d'utilisateur et de changer le mot de passe de la boîte aux lettres qui nous intéresse. Nous envoyons:
http://po4ta.ru/change_pass.php?username= utilisateur & pass1 = NEW_PASSWORD & pass2 = NEW_PASSWORD
Le serveur est susceptible de nous envoyer un message du type "Vous avez créé l'accès aux ressources nécessitant une autorisation", ainsi que TP. Cela signifie que le fichier change_pass.php , qui traite les demandes, a établi que les cookies écrits sur notre disque dans le source de la session de travail avec le courrier correspondent à l'utilisateur test@po4ta.ru , mais en aucun cas utilisateur@po4ta.ru . Outre les cookies, l'identification de l'utilisateur peut être faite par une adresse IP ou une clé d'identification spéciale, ce qui sera discuté plus tard.

L'utilisateur est donc obligé d'envoyer lui-même la demande, à partir de la boîte utilisateur@po4ta.ru . Vous pouvez «forcer» l'utilisateur à le faire en lui envoyant un message avec du code JavaScript, dans lequel les données sont automatiquement envoyées au serveur avec son adresse IP et ses cookies. Exemples de ce code:

Ou en utilisant la méthode POST:

Toutes les variables sont définies dans des champs cachés et, lorsque l'utilisateur survole la souris avec la souris, le gestionnaire d'événements OnMouseOver met à jour les données. Vous pouvez masquer complètement le processus de modification du mot de passe en mettant à niveau le code:



MESSAGE TEXTE


La table 1000x1000 élargit la plage du gestionnaire onMouseOver; toutefois, l'attribut cible de la balise de formulaire charge le résultat de la requête dans le cadre zeroFrame, le processus est maintenant complètement masqué par l'œil de l'utilisateur.


C’est peut-être ainsi que le serveur de messagerie principal fonctionnait avec la première interface WWW. Il est actuellement impossible de casser le savon de cette façon. Premièrement, sur la plupart des serveurs, lors de la modification d’un mot de passe, ainsi que d’un nouveau, il est suggéré de saisir un ancien mot de passe. Deuxièmement, il est difficile de trouver un serveur de messagerie, ce qui vous permet également d’exécuter du JavaScript dans des lettres contenant des fichiers attachés.

Post-filtres

Ce sont des programmes qui sont situés sur le serveur, ils traitent les emails entrants, en coupant ou en modifiant le code contenant un danger potentiel. Ainsi, par exemple, le filtrage peut ressembler à Xscript ou scripX. Dans ce cas, le programme entier situé dans le conteneur de script ne sera en aucun cas interprété par le navigateur comme prévu. Il est permis de contourner les filtres avec protection en recherchant des manières documentées d'introduire notre code, non pris en compte par les développeurs de l'e-mail, ou en le cachant, puis en envoyant le code dans un formulaire modernisé et non reconnu pour le filtre.
Envisagez d'autres moyens d'exécuter la requête dans l'exemple précédent.


Le résultat d'un changement de paramètre est chargé dans un cadre invisible. Un moyen efficace, mais la plupart des services de courrier sont déjà couverts.



Au lieu de l'adresse de l'image, l'adresse du paramètre est chargée avec la modification du mot de passe. Cela ne fonctionnera pas si l'utilisateur désactive les graphiques dans son navigateur. Il fonctionne correctement sur la plupart des serveurs. Mais sur certains, sur l'exemple www.rambler.ru , l'URL est chargée via une application spéciale redirect / http: //po4ta.ru/change_pass.php? Nom d'utilisateur = utilisateur & pass1 = NEW_PASSWARE & pass2 = NEW_PASS




L'URL spécifiée est chargée après l'expiration des pores X (s). Cette balise travaille actuellement sur www.hotbox.ru

Autres vulnérabilités

En examinant les paramètres de boîte aux lettres sur divers serveurs de soap, en plus de changer le mot de passe sans confirmation, il est permis de détecter de nombreuses failles plus fondamentales pouvant être utilisées pour prendre le contrôle de la boîte d’un autre utilisateur, lire ou supprimer des messages, etc. Revenons à notre courrier sur www.po4ta.ru . Nous gagnons l'option "Forwarding" . Nous sommes invités à entrer une ou plusieurs adresses auxquelles des lettres seront envoyées.



Lorsque nous spécifions l' adresse de livraison test1@po4ta.ru dans le champ des emails , confirmez également le changement de paramètres en cliquant sur le bouton "Enregistrer", la page se chargera avec un nouveau formulaire:



Pour que les modifications prennent effet, il est nécessaire de saisir un code de confirmation, qui est envoyé par un message à test1@po4ta.ru . Ainsi, nous pouvons acquérir toute la correspondance entrante de l’utilisateur qui nous intéresse, si nous lui envoyons deux lettres HTML, dont la principale contient le type de paramètres de transfert, mais l’autre est une confirmation avec un code spécial que nous connaissons. Un tel système pour «écouter» la boîte aux lettres de quelqu'un d'autre est quelque peu fastidieux, mais il existe encore de nombreuses versions de logiciels de courrier qui ne demandent pas de mot de passe pour définir la redirection des lettres.

La prochaine lacune importante dans la politique de sécurité des services postaux est le changement de la tâche secrète et des objections, si cette opération n'est pas protégée par un mot de passe. Nous pouvons couper l'utilisateur de sa boîte aux lettres en mettant à jour les données que nous connaissons déjà, mais en utilisant le service de rappel de mot de passe pour définir votre mot de passe.

Le plus souvent, d’un simple clic sur un bouton, le compte utilisateur de certains expéditeurs est supprimé. Un exemple typique est www.yandex.ru . Un mot de passe est demandé pour la suppression de la boîte, mais aucun mot de passe n'est requis pour la suppression du service associé - le site * .narod.ru. Élémentaire, il est autorisé à supprimer le site de la "victime" à l'aide de sa boîte aux lettres en exécutant la requête suivante: http://narod.yandex.ru/registration/unlogin.xhtml?DeleteLogin=%C4%E0 , qui est autorisée à se cacher dans la balise IMG.

Les modifications non autorisées apportées à d'autres paramètres, bien qu'elles entraînent également un risque considérablement réduit, peuvent indirectement affecter la saisie de la boîte aux lettres.
Changer les informations personnelles (nom, etc.)
Changer les informations de contact
Définir le filtre
Effacer le dossier XXXX
Envoyer un email en tant qu'utilisateur
Installer le sélecteur POP3

Clé d'identification

À la source de l'article, nous avons émis une réserve sur le fait que dans certains cas, un identificateur symbolique est utilisé. Lorsque vous utilisez un courrier électronique, il est autorisé à l'observer dans la barre d'adresse du navigateur:



L'introduction d'un tel système ne nous permet en aucun cas d'exécuter une requête standard, car l'ID est généré à chaque nouvelle entrée dans la boîte aux lettres. Il est également détruit à la fin de la session de travail en appuyant sur le bouton "Quitter". Cependant, si la session est terminée de manière incorrecte, il devient possible de réutiliser l'identifiant.
Il est facile de vérifier en copiant l'adresse dans le presse-papier, fermer la fenêtre et la coller dans la barre d'adresse de la nouvelle fenêtre - nous étions de retour dans notre boîte aux lettres. Maintenant, si la clé ID ne correspond pas à l’adresse IP (autre type de protection), il est également permis de pénétrer dans la boîte d’un autre utilisateur. Il suffit alors d’intercepter le champ de localisation en incorporant des balises dans notre message qui envoient une demande au renifleur html, qui à son tour, enregistre la variable HTTP_REFERER dans un fichier spécial. La manière la plus simple, comme d’habitude, est de spécifier l’adresse du renifleur à la place de l’image souhaitée:



Fichier journal - http://zero.h12.ru/stat/base.txt
Quelques adresses supplémentaires snifferov mangent sur ce site. Lors de la leçon, écrire un script qui enregistre l'adresse à laquelle il reçoit une demande - une leçon de cinq minutes - est beaucoup plus difficile à trouver pour l'hébergement. Un exemple d'un tel script en php:



Ensuite, nous considérons la situation à laquelle le numéro d'identification étranger nous est inutile étant donné que l'adresse IP de l'utilisateur lui est attribuée. Revenons au système, à quel moment l'utilisateur lui-même, avec son adresse IP, modifie les paramètres de la boîte en ouvrant notre lettre. Supposons que vous mangiez cette option Bloquer tout le courrier entrant , nous aimerions également l'inclure dans la boîte de quelqu'un.



L'identifiant est transmis dans un champ "id" masqué. Par conséquent, pour pouvoir modifier les paramètres, vous devez également le saisir en temps réel. La première chose qui a recours à la tête javascript. Il a un objet de localisation spécialisé, il contient également l'URL de l'acte actif. Pour obtenir notre identifiant à partir du champ location , nous utilisons la fonction substr () .



Directement substr () ne fonctionne d'aucune façon avec location. Nous y ajoutons donc le symbole #, l'associons à une variable, puis entrons le résultat du calcul dans une autre variable, puis mangeons la clé d'identification découpée. Arguments substr (): position x depuis le début de la ligne, position x1 depuis x. Dans la ligne http://www.newpochta.ru/session?id=a349f8d7be67c90af8873fc7ad803cf5&folder=inbox, l' identifiant à partir de la 36ème position possède également 32 caractères; les arguments prennent donc la forme substr (36, 32);

Une autre façon d'obtenir un identifiant consiste à utiliser à nouveau le script sur votre hôte. Inscrivez-vous dans le fichier envoyé:




UNE FOIS ENCORE SUR LES FILTRES

Si sur les interfaces Web avec identification de cookie, nous envoyions des demandes standard de modification des paramètres, nous pourrions également utiliser de simples balises HTML. Lorsque vous utilisez des clés ID, il est directement nécessaire d'intégrer du code JavaScript dans une lettre, mais les développeurs de serveurs de messagerie bloquent cette possibilité avec des filtres. à propos d'eux mentionnés ci-dessus. Parlons maintenant de la façon de vendre ces filtres. Tirez parti des méthodes peu habituelles que les programmeurs oublient souvent:



En fait, le JS est "caché" ici dans les valeurs d'attribut des balises qui fonctionnent avec l'URL et est également généré dynamiquement lorsque l'adresse spécifiée est chargée.

Parfois, le filtre peut être trompé , cachant un peu le système du code malveillant, ainsi, sur www.mail.ru, à l' intérieur de chaque balise, il est autorisé d'injecter le gestionnaire d'événements JS. En mode nominal



Mais si vous supprimez l'espace entre la valeur d'attribut et le gestionnaire, le filtre ignorera cette construction:



L’inconvénient est que, dans une certaine mesure, un navigateur spécifique est lié, car ils ont parfois tendance à interpréter le code HTML de différentes manières.
Le prochain point important est comment envoyer la lettre. Si vous attachez un fichier html, l'intégrité du message sera préservée dans la pièce jointe, mais les paramètres nécessaires n'apparaîtront pas dans le corps du message. Par conséquent, il est conseillé d'envoyer au format HTML. Cette fonction est prise en charge par certaines interfaces WWW et programmes de messagerie POP3. Dans le gestionnaire de messages, à côté du message, l'icône du fichier joint ne sera pas déplacée.

RÉSUMÉ

Donc, ayant décidé d'entrer dans une boîte aux lettres extraterrestre, vous devez tout d'abord examiner le système pour détecter la présence de vulnérabilités. Parfois, les programmeurs permettent des erreurs significatives dans l'écriture de scripts. Approximativement chaque service possède la fonction de récupération des mots de passe oubliés. Habituellement, sur la première page, un identifiant est entré, sur l'autre, une objection à une tâche secrète, mais sur la troisième, si la réponse est correcte - un changement de mot de passe. Supposons qu'il y ait une grave faille de sécurité sur le système qui nous intéresse, mais justement: nous avons répondu correctement à la tâche secrète, nous avons également généré une nouvelle page avec un formulaire de modification du mot de passe. Cependant, lorsque nous avons consulté le code HTML de cette page, nous avons constaté que l'utilisateur ne reconnaissait que la variable dans le champ. "nom d'utilisateur", à savoir, en remplaçant un autre nom d'utilisateur, change le mot de passe dans une boîte étrangère. Ou une telle variante: en échange d’une objection valable, un identifiant similaire à celui utilisé lors d’une session de travail avec mail est émis. Peut-être, après avoir reçu la clé actuelle en remplaçant également les champs cachés, le serveur acceptera les nouveaux paramètres. Je pense qu’espérer de telles omissions est absurde, car il est strictement suivi que de telles erreurs ne se répètent pas. Par conséquent, nous rechercherons des vulnérabilités dans le principe même de l'organisation des services.

Si vous regardez le courrier électronique sur www.newmail.ru (nm.ru, pochta.ru, orc.ru, nightmail.ru, hotmail.ru) , vous constaterez qu'il y a de tels inconvénients. Reportez-vous à nouveau à l'option de récupération de mot de passe. Il est proposé de répondre à la tâche secrète, même si la réponse est sans erreur - le mot de passe est envoyé à l'e-mail spécifié dans les paramètres. Et bien que la réponse soit également que les courriels se trouvent dans différentes pages du courrier, il semble également possible de changer autre chose, d'autant plus que le filtre ne supprime même pas JavaScript. En plus de tout, lorsque vous renouvelez un mot de passe, un autre formulaire s’affiche. Vous devez y entrer davantage de données (comme dans les paramètres de la boîte aux lettres) et les envoyer à la règle. Comment pré-affecter des données à l'utilisateur souhaité est déjà connu.

Naturellement, chez la plupart des postiers, tout est fermé, mais il y a toujours une échappatoire à manger. Et s’il ya un grand intérêt ou une nécessité pour nous de pénétrer dans la boîte de l’utilisateur, ayant reçu plus d’informations à ce sujet et ayant développé une sorte de schéma «stratégique» à partir des méthodes présentées dans cet article, il est permis d’obtenir de bons résultats.
Voici des exemples réels. L'attaquant veut obtenir un mot de passe d'un service particulier utilisé par la victime (pas nécessairement un service de messagerie, par exemple un service d'hébergement). Dans le même temps, il sait de manière fiable que le mot de passe oublié sera envoyé à user@pisem.net. Il envoie un message avec des balises HTML à ce bla bla:





Après avoir supprimé le compte, il en crée un nouveau. Sous un tel nom, bla bla, il obtient également un mot de passe.

L'opportunité de pénétrer avec un tel bla bla également sur le compte sur mail.ru a survécu. Dans un message, réinitialisez les paramètres de sécurité



Maintenant, chaque fois que l'utilisateur se connecte, la clé d'identification est émise et l'adresse IP n'est pas prise en compte, mais comme cela a déjà été pris en compte, si vous l'interceptez à l'aide d'un renifleur, il est facile d'être à l'intérieur pour lire également la lettre souhaitée.

En conclusion, une fois de plus, je note que les informations présentées ici sont connues depuis longtemps par les utilisateurs plus ou moins alphabètes, ainsi que par toute l'approche fictive consistant à déchiffrer la boîte via html. À mon avis, elle aliène également aujourd'hui plus de résultats que Brutus Forces ou l'ingénierie sociale. Vous avez juste besoin de trouver une pièce faible et un moyen de l'utiliser.