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

INTERFACE E-MAIL WWW

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 casser complètement la 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érons le principe du piratage d'une boîte aux lettres 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 en tant qu'occupation principale, nous entrons dans les paramètres de notre nouvelle boîte aux lettres. L’option "Changer le mot de passe" est particulièrement intéressante, à quel endroit il est proposé de saisir le nouveau mot de passe, de le confirmer et d’envoyer les données.

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


Le code pour 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 (le 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 nom d'utilisateur et de changer également le mot de passe sur la boîte 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" et à 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 . En plus des 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.

Donc, l'utilisateur est obligé d'envoyer la demande lui-même, à 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 lettre avec sa 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 étend la plage du gestionnaire onMouseOver. Cependant, l'attribut cible de la balise de formulaire charge le résultat de la requête dans le cadre zeroFrame. Désormais, le processus est 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. Tout d'abord, sur la plupart des serveurs, lors de la modification d'un mot de passe, ainsi que d'un nouveau, il est proposé 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 en recherchant, ou en recherchant des moyens documentés pour implémenter notre code, non pris en compte par les développeurs de l’éditeur de courrier, ou en le masquant, puis en envoyant le code dans un formulaire modernisé, 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 de configuration est chargée avec un changement de mot de passe. Cela ne fonctionnera pas si l'utilisateur désactive les graphiques dans son navigateur. Fonctionne 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? Nomutilisateur = utilisateur & pass1 = NEW_PASSWARE & pass2 = NEW_PASS




L'URL spécifiée est chargée après l'expiration du ou des pores X. 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 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 transfert test1@po4ta.ru dans le champ des emails , confirmez également la modification des 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 d'entrer un code de confirmation, qui est envoyé par le 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 d'envoi, 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 d'expéditeurs 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 une confirmation de 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, en appuyant simplement sur un bouton, dans certains expéditeurs, le compte d'utilisateur est supprimé. Un exemple typique est www.yandex.ru . Un mot de passe est demandé pour la suppression d'une boîte, mais aucun mot de passe n'est requis pour la suppression d'un 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 posent é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 formulé une réserve selon laquelle, 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 pas d’exécuter une requête standard. L’ID est généré à chaque nouvelle boîte vocale enregistrée et est également détruit à la fin d’une 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-papiers, 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 enregistre à son tour 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. Au cours de la leçon, écrire un script qui enregistre l'adresse à laquelle il reçoit une demande - une session de cinq minutes est beaucoup plus difficile à trouver pour l'hébergement pour son placement. Un exemple d'un tel script en php:



Ensuite, nous considérons la situation à laquelle le numéro d'identification étranger nous est inutile du fait 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 voudrions également l’activer sur la boîte de quelqu'un.



L'identifiant est transmis dans un champ "id" masqué. Désormais, pour modifier les paramètres, vous devez également l'obtenir 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 () avec emplacement ne fonctionne pas du tout. Nous y ajoutons le symbole #, nous l'associons à une variable, puis nous entrons le résultat du calcul dans une autre variable, puis nous mangeons la clé d'identification découpée. Arguments substr (): position x depuis le début de la chaîne, position x1 depuis x. Dans la ligne http://www.newpochta.ru/session?id=a349f8d7be67c90af8873fc7ad803cf5&folder=inbox, l' identificateur commence à la 36e position et possède 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 nous envoyions des demandes standard de modification des paramètres sur les interfaces Web avec identification de cookie, nous pourrions également utiliser de simples balises HTML. Lorsque vous utilisez des clés ID, il est directement nécessaire d'incorporer du code JavaScript dans la 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 des attributs de 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:



Un défaut de cette manière est qu’il existe dans une certaine mesure une liaison avec un navigateur spécifique, car ils ont parfois tendance à interpréter le code HTML de différentes manières.
Point significatif ultérieur - sous quelle forme 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 entrepris de pénétrer une boîte aux lettres extraterrestre, vous devez d’abord examiner le système pour détecter la présence de vulnérabilités. Parfois, les programmeurs autorisent des erreurs importantes dans l’écriture des scripts. Approximativement chaque service possède la fonction de récupération des mots de passe oubliés. Habituellement, le nom de connexion est entré sur la première page, sur l'autre, il y a une objection à la tâche secrète, mais sur la troisième page, si la réponse est correcte, le mot de passe est modifié. Supposons qu'il y ait une grave faille de sécurité sur le système qui nous intéresse, mais précisément: 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 le courrier 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 consultez le site Web à l' adresse www.newmail.ru (nm.ru, pochta.ru, orc.ru, nightmail.ru, hotmail.ru) , vous constaterez qu'il existe 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é au courrier électronique spécifié dans les paramètres. Et bien que la réponse soit aussi 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 outre, 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 des échappatoires à manger. Et s’il est très intéressant ou nécessaire pour nous de pénétrer dans la boîte de l’utilisateur, après avoir reçu plus d’informations à son sujet et développé une sorte de schéma «stratégique» à partir des méthodes présentées dans cet article, il est possible d’obtenir de bons résultats.
Voici des exemples réels. L'attaquant veut obtenir un mot de passe d'un service spécifique 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é est envoyé à user@pisem.net. Il envoie un message avec des balises HTML à ce bla bla:





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

Conservé la possibilité de pénétrer avec un tel bla bla aussi au compte sur mail.ru. 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é considéré, 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 remarque 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 simpliste qui consiste à pirater la boîte via html. Vous avez juste besoin de trouver une pièce faible et un moyen de l'utiliser.