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

INTERFACE E-MAIL WWW

Comme les méthodes présentées dans cet article sont connues de longue date par des utilisateurs expérimentés, les vulnérabilités permettant le piratage à 100% sont éliminées partout dans le monde. Il s’agit essentiellement de présenter aux débutants les principes du travail de messagerie Web (et ses failles de sécurité).

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 le poste principal 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 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 également le mot de passe dans la case 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:

Nous définissons toutes les variables dans des champs masqués et, lorsque l'utilisateur passe la souris sur le corps de notre lettre, 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. Toutefois, 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 d’exécuter du JavaScript en lettres et en fichiers attachés.

Post-filtres

Ce sont des programmes situés sur le serveur, ils traitent les courriels entrants en leur coupant ou en modifiant un 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 moyens documentés d'implémenter notre code, non pris en compte par les développeurs de l'e-mail, ou en le masquant, 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 donnée 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 recherchant 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 trouver de nombreuses failles plus fondamentales qui peuvent être utilisées pour reprendre la boîte de quelqu'un d'autre, 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 de transfert, mais l'autre contient une confirmation avec un code spécial connu de nous. Un tel système «d’écoute» d’une boîte aux lettres étrangère est quelque peu fastidieux, mais il existe encore quelques versions d’expéditeurs ne demandant pas de mot de passe pour définir le transfert 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, 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 couplé - 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'identifiant 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 cela 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 à son tour, enregistre la variable HTTP_REFERER dans un fichier spécial. La manière la plus simple, comme d’habitude, consiste à 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. Un exemple d'un tel script en php:



Ensuite, nous considérons la situation à laquelle l'instant où l'ID étranger est inutile pour nous 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é. Par conséquent, pour pouvoir 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 () ne fonctionne pas avec l'emplacement. Nous y ajoutons 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 chaîne, position x1 depuis x. Dans la ligne http://www.newpochta.ru/session?id=a349f8d7be67c90af8873fc7ad803cf5&folder=inbox, l' identifiant commence à la 36e position et 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'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 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é à 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 il est parfois courant qu’ils interprètent 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 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 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, sur la première page, le nom de connexion est entré, 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 justement: nous avons correctement répondu à la tâche secrète, nous avons également généré une nouvelle page avec un formulaire de modification du mot de passe. "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é ID actuelle et l'avoir substituée dans des 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 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 des échappatoires à 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 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, bla bla, il obtient également un mot de passe.

Il y a une 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é 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 encore, je constate que les informations présentées ici sont connues de longue date par les utilisateurs plus ou moins alphabètes, ainsi que par toute l'approche fictive consistant à pirater 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.