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

WWW E-MAIL-SCHNITTSTELLE

Da die in diesem Artikel beschriebenen Methoden erfahrenen Benutzern seit langem bekannt sind, zielen die Schwachstellen, die mit einer 100% igen Garantie überall behoben werden können, in erster Linie darauf ab, Anfänger in die Prinzipien von Web-Mail (und deren Sicherheitslücken) einzuführen.

Betrachten wir persönlich das Prinzip, nach dem eine Mailbox über das WWW gehackt wird. Uns gehört der Server www.po4ta.ru, den wir auch in den Briefkasten user@po4ta.ru eingeben müssen . Wir registrieren ein Konto auf diesem Bla-Server test@po4ta.ru. Die Hauptbeschäftigung liegt in den Einstellungen unserer neu erstellten Mailbox. Von größtem Interesse für uns ist die Option "Passwort ändern" , in der vorgeschlagen wird, ein neues Passwort einzugeben, es zu bestätigen und auch Daten zu senden.

Passwort ändern
Geben Sie das neue Passwort ein:
Eingabe wiederholen:


Der Code für eine solche HTML-Seite könnte folgendermaßen aussehen:

Change_pass.php ist hier ein Serverskript , das die Werte pass1, pass2 (Passwort mit Bestätigung) und username (den Inhalt eines ausgeblendeten Feldes, das angibt, in welchem ​​Feld das Passwort geändert wird) annimmt.
Wenn Sie die entsprechende GET-Anforderung generieren, wird die folgende Zeile angezeigt:
http://po4ta.ru/change_pass.php?username=test&pass1=NEWPASSWORD&pass2=NEW PASSWORD

Fügen Sie nun diesen Link in die Adresszeile des aktuellen Fensters unseres Browsers ein und senden Sie die Daten ebenfalls an den Server. Als Ergebnis erhalten wir eine Nachricht, dass das Passwort in der Mailbox test@po4ta.ru erfolgreich geändert wurde. Aber was ist, wenn wir versuchen, den Wert der Benutzernamenvariablen zu fälschen und auch das Kennwort für die Mailbox zu ändern, die uns interessiert. Wir senden:
http://po4ta.ru/change_pass.php?username= user & pass1 = NEW_PASSWORD & pass2 = NEW_PASSWORD
Der Server wird uns wahrscheinlich eine Meldung wie "Sie haben auf Ressourcen zugegriffen, für die eine Autorisierung erforderlich ist" und " TP " senden. Dies bedeutet, dass change_pass.php , das die Anforderungen verarbeitet, festgestellt hat, dass Cookies, die an der Quelle der Arbeitssitzung mit der E-Mail auf unsere Festplatte geschrieben wurden, dem Benutzer test@po4ta.ru entsprechen , jedoch in keiner Weise user@po4ta.ru . Zusätzlich zu Cookies kann die Benutzeridentifizierung über die IP-Adresse oder einen speziellen ID-Schlüssel erfolgen, auf den später noch eingegangen wird.

Der Benutzer muss also die Anfrage selbst aus der Mailbox user@po4ta.ru senden . Um den Benutzer dazu zu "zwingen", können Sie ihm eine Nachricht mit einem JavaScript-Code senden, bei der die Daten automatisch auch mit seinen IP-Cookies an den Server gesendet werden. Beispiele für solchen Code:

Oder mit der POST-Methode:

Wir setzen alle Variablen in ausgeblendeten Feldern, auch wenn der Benutzer den Mauszeiger über den Text unserer Nachricht bewegt, aktualisiert der OnMouseOver-Ereignishandler die Daten. Sie können den Vorgang des Änderns des Kennworts vollständig maskieren, indem Sie den Code aktualisieren:



NACHRICHTTEXT


Eine Tabelle mit einer Größe von 1000 x 1000 erweitert den Gültigkeitsbereich des onMouseOver-Handlers. Das Zielattribut des Formular-Tags lädt jedoch das Ergebnis der Abfrage in den Null-Frame-Null-Frame. Der Vorgang ist jetzt vollständig vor dem Auge des Benutzers verborgen.


Vielleicht hat der Haupt-Mailserver so mit der ersten WWW-Oberfläche gearbeitet. Derzeit ist es unmöglich, auf diese Weise in Seife zu brechen. Erstens wird heute auf den meisten Servern vorgeschlagen, beim Ändern des Kennworts zusammen mit dem neuen das alte Kennwort einzugeben. Zweitens ist es schwierig, einen Mailserver zu finden, mit dem JavaScript auch in E-Mails mit angehängten Dateien ausgeführt werden kann.

Mail-Filter

Hierbei handelt es sich um Programme, die sich auf dem Server befinden. Sie verarbeiten eingehende Briefe und schneiden oder ändern den Code, der potenzielle Gefahren enthält. So kann beispielsweise ein Skript, das später gefiltert wird, wie Xscript oder scripX aussehen. Das gesamte Programm, das sich in diesem Fall im Skriptcontainer befindet, wird vom Browser nicht wie geplant interpretiert. Das Umgehen des Schutzes mit Filtern wird ermöglicht, indem entweder nach dokumentierten Methoden zur Implementierung unseres Codes gesucht wird, die von den Entwicklern der Mailer nicht berücksichtigt wurden, oder indem dieser ausgeblendet wird, und anschließend der Code in einer modernisierten Form gesendet wird, die vom Filter nicht erkannt wird.
Erwägen Sie andere Möglichkeiten, um die Abfrage im vorherigen Beispiel auszuführen.


Das Ergebnis einer Einstellungsänderung wird in einen unsichtbaren Frame geladen. Effektiver Weg, aber auf den meisten Mail-Diensten bereits abgedeckt.



Anstelle der Bildadresse wird die Konfigurationsadresse mit einer Passwortänderung geladen. Es funktioniert nicht, wenn der Benutzer die Grafiken in seinem Browser deaktiviert. Es funktioniert auf den meisten Servern ordnungsgemäß. In einigen Fällen wird die URL zum Beispiel www.rambler.ru über eine spezielle Anwendungsumleitung / http: //po4ta.ru/change_pass.php heruntergeladen. Benutzername = Benutzer & pass1 = NEW_PASSWORD & pass2 = NEW_PASSWORD




Die angegebene URL wird nach Ablauf der Pore X (Sek.) Geladen. Dieser Tag wird derzeit auf www.hotbox.ru ausgeführt

Andere Schwachstellen

Untersucht man die Einstellungen von Mailboxen auf verschiedenen Soap-Servern, so kann man nicht nur das Passwort ohne Bestätigung ändern, sondern auch viele weitere grundlegende Fehler finden, mit denen man die Mailbox eines anderen übernehmen, Nachrichten lesen oder löschen usw. kann. Kehren wir zu unserer Mail unter www.po4ta.ru zurück . Wir bekommen die Option "Weiterleiten" . Wir werden gebeten, eine oder mehrere Adressen anzugeben, an die Briefe weitergeleitet werden.



Wenn wir die Weiterleitungsadresse test1@po4ta.ru im E- Mail- Feld angeben, bestätigen wir auch die Änderung der Einstellungen durch Klicken auf die Schaltfläche "Speichern". Die Seite wird mit einem neuen Formular geladen:



Damit die Änderungen wirksam werden, muss ein Bestätigungscode eingegeben werden, der per Nachricht an test1@po4ta.ru gesendet wird . Auf diese Weise können wir die gesamte eingehende Korrespondenz des Benutzers erfassen, an dem wir interessiert sind, indem wir ihm nacheinander ein paar HTML-Briefe senden, von denen der Hauptteil die Art der Weiterleitungseinstellungen enthält, während der andere Teil eine Bestätigung mit einem uns bekannten speziellen Code enthält. Dieses Schema zum "Abhören" des Postfachs einer anderen Person ist etwas umständlich, aber viele Versionen von Mailern, für die kein Kennwort zum Festlegen der Nachrichtenweiterleitung erforderlich ist, wurden beibehalten.

Die nächste wichtige Lücke in der Sicherheitsrichtlinie von Mail-Diensten ist die Änderung der geheimen Aufgabe und des Einspruchs, wenn dieser Vorgang in keiner Weise durch eine Kennwortbestätigung geschützt ist. Wir können den Benutzer von seiner Mailbox abschneiden, indem wir die Daten nach den uns bereits bekannten Methoden aktualisieren. Legen Sie dann mithilfe des Kennworterinnerungsdienstes Ihr Kennwort fest.

Noch häufiger wird bei einigen Mailern ein Benutzerkonto mit nur einem Klick gelöscht. Ein typisches Beispiel ist www.yandex.ru . Zum Löschen der Box wird ein Kennwort angefordert, zum Löschen des zugehörigen Dienstes - der Website * .narod.ru - ist jedoch kein Kennwort erforderlich. Grundsätzlich ist es erlaubt, die Seite des "Opfers" über seine Mailbox zu löschen, indem die folgende Anfrage ausgeführt wird: http://narod.yandex.ru/registration/unlogin.xhtml?DeleteLogin=%C4%E0 , die sich im IMG-Tag verstecken darf.

Nicht autorisierte Änderungen an anderen Einstellungen können sich indirekt auf die Postfacherfassung auswirken, auch wenn sie ein erheblich geringeres Risiko darstellen.
Persönliche Daten ändern (auch Name etc.)
Ändern Sie die Kontaktinformationen
Filter setzen
Leerer XXXX-Ordner
E-Mail als Benutzer senden
Installieren Sie POP3 Collector

ID-SCHLÜSSEL

An der Quelle des Artikels haben wir reserviert, dass in einigen Fällen ein symbolischer Bezeichner verwendet wird, der bei der Arbeit mit E-Mails in der Adressleiste des Browsers angezeigt werden darf:



Die Einführung eines solchen Systems ermöglicht es uns nicht mehr, eine Standardanforderung zu erfüllen, da die ID bei jedem neu vorgenommenen Eintrag in die Mailbox generiert wird und auch nach Beendigung der Arbeitssitzung durch Drücken der Schaltfläche "Beenden" zerstört wird. Wenn die Sitzung jedoch nicht ordnungsgemäß beendet wird, kann der Bezeichner erneut verwendet werden.
Dies lässt sich leicht überprüfen, indem Sie die Adresse in die Zwischenablage kopieren, das Fenster schließen und in die Adressleiste eines neuen Fensters einfügen - wir sind wieder in unserer Mailbox. Wenn nun die IP-Adresse (eine andere Art des Schutzes) nicht dem ID-Schlüssel zugeordnet ist, ist es ebenfalls zulässig, die Box eines anderen Benutzers zu betreten. Hierzu genügt es, das Feld location abzufangen, indem Tags in unsere Nachricht eingebettet werden, die eine Anfrage an den HTML-Sniffer senden, der Protokolliert wiederum die Variable HTTP_REFERER in einer speziellen Datei. Am einfachsten ist es, wie üblich, die Sniffer-Adresse für das gewünschte Bild anzugeben:



Protokolldatei - http://zero.h12.ru/stat/base.txt
Noch ein paar Schnüffleradressen zum Essen auf dieser Seite. In der Lektion selbst dauert es fünf Minuten, ein Skript zu schreiben, das festhält, an welche Adresse die Anforderung gesendet wird. Es ist viel schwieriger, ein Hosting zu finden, das sie hostet. Ein Beispiel für ein solches Skript in PHP:



Als nächstes betrachten wir die Situation, zu der eine Ausländer-ID für uns nutzlos ist, da ihr die IP-Adresse des Benutzers zugewiesen wurde. Kehren wir zum System zurück, zu welchem ​​Zeitpunkt der Benutzer selbst mit seiner IP die Einstellungen der Box ändert, indem er unseren Brief öffnet. Angenommen, Sie möchten eine solche Option verwenden. Alle eingehenden E-Mails blockieren . Wir möchten sie auch für die Mailbox eines anderen Benutzers aktivieren.



Die ID wird im ausgeblendeten Feld "id" übertragen. Um die Einstellungen zu ändern, müssen Sie sie jetzt auch in Echtzeit abrufen. Das erste, was mir einfällt, ist JavaScript. Essen Sie darin das spezialisierte Standortobjekt , das auch die URL des aktiven Vorgangs enthält. Um unseren Bezeichner aus dem Feld location zu erhalten, verwenden wir die Funktion substr () .



Direct substr () funktioniert in keiner Weise mit location, also fügen wir das # -Symbol hinzu, weisen es einer Variablen zu, geben dann aber das Ergebnis der Berechnung in eine andere Variable ein und essen dann den ausgeschnittenen ID-Schlüssel. Argumente substr (): x-Position von der Quelle des Strings, x1-Position von x. In der Zeile http://www.newpochta.ru/session?id=a349f8d7be67c90af8873fc7ad803cf5&folder=inbox beginnt der Bezeichner an der 36. Position und enthält 32 Zeichen. Die Argumente haben daher die Form substr (36, 32).

Eine andere Möglichkeit, eine ID zu erhalten, besteht darin, das Skript erneut auf Ihrem Host zu verwenden. Wir schreiben in die zu sendende Datei:




EINMAL WIEDER ÜBER FILTER

Wenn wir auf Web-Interfaces mit Cookie-Identifikation Standardanforderungen für die Änderung von Einstellungen gesendet haben, können wir auch einfache HTML-Tags verwenden. Wenn wir mit ID-Schlüsseln arbeiten, beginnt die direkte Notwendigkeit, JavaScript-Code einzubetten, aber die Entwickler von Mailservern blockieren diese Möglichkeit mit Filtern. sprach über sie oben. Lassen Sie uns nun über den Verkauf dieser Filter sprechen. Verwenden Sie in keiner Weise ganz bekannte Methoden, die Programmierer häufig übersehen:



Tatsächlich "versteckt" sich JS hier in den Werten der Tag-Attribute, die mit der URL zusammenarbeiten, und wird auch dynamisch generiert, wenn die angegebene Adresse geladen wird.

Manchmal kann ein Filter getäuscht werden, indem das System ein wenig vor böswilligem HTML versteckt wird. Auf www.mail.ru ist es daher zulässig, einen JS-Ereignishandler in ein beliebiges Tag einzubetten. Im nominalen Modus ist die Leitung



Wenn Sie jedoch das Leerzeichen zwischen dem Attributwert und dem Handler entfernen, überspringt der Filter eine solche Konstruktion:



Der Fehler dieser Methode besteht darin, dass zu einem gewissen Grad eine Bindung an einen bestimmten Browser besteht, da diese manchmal dazu neigen, HTML-Code unterschiedlich zu interpretieren.
Der nächste wichtige Punkt ist das Senden des Briefes. Wenn Sie die HTML-Datei anhängen, bleibt die Integrität der Nachricht im Anhang erhalten, die erforderlichen Parameter werden jedoch nicht im Nachrichtentext angezeigt. Daher ist es ratsam, im HTML-Format zu senden. Diese Funktion wird auch von einigen WWW-Schnittstellen sowie von POP3-Mailprogrammen unterstützt. Gleichzeitig wird im Nachrichtenmanager das Symbol der angehängten Datei nicht in die Nähe der Nachricht verschoben.

ZUSAMMENFASSUNG

Mit dem Ziel, in ein fremdes Postfach einzudringen, müssen Sie das System zunächst auf Schwachstellen untersuchen. Manchmal machen Programmierer erhebliche Fehler beim Schreiben von Skripten. Nahezu jeder Dienst hat die Funktion, vergessene Passwörter zu erneuern. Normalerweise wird das Login auf der ersten Seite eingegeben, auf der anderen Seite gegen die geheime Aufgabe, aber auf der dritten, wenn die Antwort richtig ist - ändern Sie das Passwort. Angenommen, das System, an dem wir interessiert sind, weist jedoch eine schwerwiegende Sicherheitslücke auf: Wir haben die geheime Aufgabe korrekt beantwortet, eine neue Seite mit dem Kennwortänderungsformular wurde ebenfalls generiert. Bei der Prüfung des HTML-Codes dieser Seite haben wir jedoch festgestellt, dass der Benutzer nur von einer Variablen im Feld erkannt wird "Benutzername": Wenn Sie einen anderen Benutzernamen verwenden, ändern Sie das Kennwort in der Box eines anderen Benutzers. Oder eine solche Variante: Im Austausch gegen einen gültigen Einspruch wird eine Kennung ausgegeben, die der während einer Arbeitssitzung mit der Post verwendeten ähnlich ist. Möglicherweise akzeptiert der Server die neuen Einstellungen, nachdem er den aktuellen ID-Schlüssel erhalten und in ausgeblendete Felder eingesetzt hat. Auf solche Auslassungen zu hoffen, halte ich für absurd, da dies streng überwacht wird und sich auch solche Fehler nicht wiederholen. Aus diesem Grund werden wir nach Schwachstellen im Prinzip der Serviceorganisation suchen.

Wenn Sie sich Webmail unter www.newmail.ru genau ansehen (nm.ru, pochta.ru, orc.ru, nightmail.ru, hotmail.ru) , dann gibt es einmal solche Nachteile. Wenden wir uns erneut der Option zur Passworterneuerung zu. Es wird vorgeschlagen, die geheime Aufgabe zu beantworten, auch wenn die Antwort fehlerfrei ist - das Passwort wird an die in den Einstellungen angegebene E-Mail gesendet. Und obwohl sich die E-Mail-Antwort auch auf verschiedenen Seiten in der E-Mail befindet, scheint es auch möglich zu sein, dies zu ändern, zumal der Filter nicht einmal JavaScript ausschneidet. Zusätzlich zu allem, was beim Erneuern des Passworts angezeigt wird, müssen Sie so viele Daten wie möglich eingeben (sie sind in den Feldeinstellungen so blau) und an das Lineal senden. Es ist bereits bekannt, wie Sie dem richtigen Benutzer Daten zuweisen können.

Natürlich ist in den meisten Mailern alles blockiert, aber es gibt immer Schlupflöcher zu essen. Und wenn es ein großes Interesse oder Bedürfnis gibt, in die Box des Benutzers einzudringen, wenn wir mehr Informationen darüber erhalten und eine Art „strategisches“ Schema aus den in diesem Artikel vorgestellten Methoden entwickelt haben, können wir gute Ergebnisse erzielen.
Hier sind echte Beispiele. Ein Angreifer möchte ein Kennwort von einem bestimmten Dienst erhalten, den das "Opfer" verwendet (nicht unbedingt per E-Mail, z. B. Hosting). Außerdem weiß er zuverlässig, dass das vergessene Passwort an user@pisem.net gesendet wird. Er sendet eine Nachricht mit HTML-Tags an diese bla bla Sarg:





Nach dem Löschen des Accounts registriert er einen neuen, mit einem solchen Namen erhält er auch ein Passwort.

Die Möglichkeit, ein solches bla bla- Ziel auch in ein Konto auf mail.ru zu infiltrieren, blieb bestehen . In einer Nachricht setzen wir die Sicherheitseinstellungen zurück



Jetzt erhält der Benutzer bei jedem nächsten Anruf einen ID-Schlüssel, und die IP-Adresse wird nicht berücksichtigt. Wenn Sie sie jedoch mithilfe eines Schnüfflers abfangen, können Sie problemlos den gewünschten Brief lesen.

Zusammenfassend stelle ich noch einmal fest, dass die Informationen, die hier präsentiert werden, mehr oder weniger erfahrenen Benutzern seit langem bekannt sind. Auch der Ansatz, eine Box durch HTML zu hacken, war derselbe. Meiner Meinung nach verfremdet er auch heute mehr Ergebnisse als BrutFors oder Social Engineering. Sie müssen nur einen schwachen Raum finden und ihn auch nutzen.