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

WWW-E-MAIL-SCHNITTSTELLE

Da die in diesem Artikel behandelten Methoden erfahrenen Benutzern seit langem bekannt sind, werden jedoch die Sicherheitslücken, mit denen Sie die absolute Garantie vollständig aufheben können, überall beseitigt. Ziel ist es, Anfängern die Prinzipien der Webmail-Arbeit (und ihre Sicherheitslücken) näher zu bringen.

Überlegen Sie selbst, nach welchem ​​Prinzip die Mailbox über das WWW gehackt wird. Uns gehört der Server www.po4ta.ru und wir müssen in die Mailbox user@po4ta.ru eindringen . Wir registrieren ein Konto auf diesem bla bla Server test@po4ta.ru auch die Hauptbeschäftigung, die wir in den Einstellungen unserer neu erstellten Mailbox gehen. Von größtem Interesse für uns ist die Option "Passwort ändern" , in der vorgeschlagen wird, das neue Passwort einzugeben, zu bestätigen und die Daten zu senden.

Passwort ändern
Geben Sie ein neues Passwort ein:
Eingabe wiederholen:


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

Change_pass.php ist hier ein serverseitiges Skript, das die Werte von pass1, pass2 (Passwort mit Bestätigung) und Benutzername (den Inhalt eines ausgeblendeten Feldes, das angibt, in welchem ​​Feld das Passwort geändert wird) akzeptiert.
Wenn wir eine entsprechende GET-Anfrage stellen, wird die folgende Zeile empfangen:
http://po4ta.ru/change_pass.php?username=test&pass1=NEW_PASSWORK_passpass==NOVY_PAROL

Jetzt werden wir diesen Link in die Adressleiste des aktuellen Fensters unseres Browsers einfügen und die Daten auch an den Server senden. Als Ergebnis erhalten wir eine Nachricht, dass das Passwort in der Box test@po4ta.ru erfolgreich geändert wurde. Und was ist, wenn Sie versuchen, den Wert der Benutzernamenvariablen zu fälschen und auch das Kennwort für die Mailbox zu ändern, an der wir interessiert sind. 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 Zugriff auf Ressourcen, für die eine Autorisierung erforderlich ist" und " TP" geben. Dies bedeutet, dass die change_pass.php , die Anfragen verarbeitet, festgestellt hat, dass die Cookies, die in 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 über die E-Mail-Adresse user@po4ta.ru senden . Sie können den Benutzer dazu "zwingen", indem Sie ihm eine Nachricht mit JavaScript-Code senden, bei der die Daten automatisch mit ihrer IP und ihren Cookies an den Server gesendet werden. Beispiele für solchen Code:

Oder mit der POST-Methode:

Alle Variablen werden in ausgeblendeten Feldern festgelegt. Wenn der Benutzer mit der Maus über den Text unseres Briefes fährt, aktualisiert die OnMouseOver-Ereignisbehandlungsroutine die Daten. Sie können das Ändern des Kennworts vollständig überdecken, indem Sie den Code aktualisieren:



TEXTNACHRICHT


Die 1000x1000-Tabelle erweitert den Gültigkeitsbereich des onMouseOver-Handlers, aber das Zielattribut des Formular-Tags lädt das Ergebnis der Abfrage in den ZeroFrame-Frame. Jetzt ist der Prozess vollständig vor dem Auge des Benutzers verborgen.


Vielleicht funktionierte der Haupt-Mailserver so mit der ersten WWW-Oberfläche. Derzeit ist es unmöglich, die Seife auf diese Weise aufzubrechen. Erstens wird jetzt auf den meisten Servern bei der Änderung eines Kennworts zusammen mit einem neuen vorgeschlagen, ein altes Kennwort einzugeben. Zweitens ist es schwierig, einen Mailserver zu finden, mit dem Sie JavaScript auch in Briefen angehängter Dateien ausführen können.

Nachfilter

Hierbei handelt es sich um Programme, die sich auf dem Server befinden. Sie verarbeiten eingehende E-Mails und schneiden oder ändern darin Code, der eine potenzielle Gefahr darstellt. So kann beispielsweise das Filtern von Skripten wie Xscript oder scripX aussehen. In diesem Fall wird das gesamte im Skriptcontainer befindliche Programm vom Browser nicht wie geplant interpretiert. Es ist erlaubt, Filter mit Schutz zu umgehen, indem entweder nach dokumentierten Möglichkeiten gesucht wird, unseren Code einzuführen, die von den Mailer-Entwicklern nicht berücksichtigt werden, oder indem dieser ausgeblendet wird, und der Code dann in einer für die Filterform nicht anerkannten, aktualisierten Form gesendet 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. Ein effektiver Weg, der aber bei den meisten Mail-Diensten bereits abgedeckt ist.



Anstelle der Adresse des Bildes wird die Setup-Adresse mit einer Passwortänderung geladen. Es funktioniert nicht, wenn der Benutzer Grafiken in seinem Browser deaktiviert. Es funktioniert auf den meisten Servern ordnungsgemäß. In einigen Fällen wird die URL für das Beispiel www.rambler.ru über eine spezielle Anwendungsumleitung / http: //po4ta.ru/change_pass.php? Benutzername = Benutzer & pass1 = NEW_PASSWARE & pass2 = NEW_PASS geladen




Die angegebene URL wird nach Ablauf von Pore X (s) geladen. Dieser Tag funktioniert derzeit auf www.hotbox.ru

Andere Schwachstellen

Bei der Untersuchung der Mailbox-Einstellungen auf verschiedenen Soap-Servern können Sie nicht nur das Passwort ohne Bestätigung ändern, sondern auch viele weitere grundlegende Fehler finden, mit denen Sie die Box einer anderen Person übernehmen, Nachrichten lesen oder löschen usw. können. Kehren wir zu unserer Mail auf www.po4ta.ru zurück . Wir erhalten die Option "Weiterleiten" . Wir werden gebeten, eine oder mehrere Adressen anzugeben, an die Briefe gesendet werden.



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



Damit die Änderungen wirksam werden, muss ein Bestätigungscode eingegeben werden, der von der 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 eine die Art der Übertragungseinstellungen enthält, der andere eine Bestätigung mit einem uns bekannten speziellen Code ist. Ein solches Schema zum "Abhören" einer fremden Mailbox ist etwas umständlich, aber es gibt immer noch einige Versionen von Mailern, die kein Passwort zum Weiterleiten von E-Mails anfordern.

Die nächste bedeutende Lücke in der Sicherheitspolitik der Postdienste ist die Änderung der geheimen Aufgabe und der Einwände, wenn dieser Vorgang nicht durch ein Passwort geschützt ist. Wir können den Benutzer von seiner Mailbox abschneiden, indem wir die uns bereits bekannten Daten aktualisieren und dann über den Passworterinnerungsdienst Ihr Passwort festlegen.

Häufig wird bei einigen Mailern das Benutzerkonto mit nur einem Klick gelöscht. Ein typisches Beispiel ist www.yandex.ru . Zum Entfernen einer Box wird ein Kennwort angefordert, zum Löschen des zugehörigen Dienstes - der Website * .narod.ru - ist jedoch kein Kennwort erforderlich. Elementar ist es zulässig, die Opfer-Site mithilfe ihres Postfachs zu löschen, indem die folgende Abfrage ausgeführt wird: http://narod.yandex.ru/registration/unlogin.xhtml?DeleteLogin=%C4%E0 , die im IMG-Tag ausgeblendet werden kann.

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

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 erlaubt es uns nicht, eine Standardanfrage in irgendeiner Weise auszuführen, da die ID bei jedem neuen Eingang in die Mailbox generiert wird und auch nach Beendigung einer Arbeitssitzung durch Drücken der Schaltfläche "Beenden" zerstört wird. Wenn die Sitzung jedoch falsch beendet wird, kann der Bezeichner wieder verwendet werden.
Es ist einfach, dies zu überprüfen, indem Sie die Adresse in die Zwischenablage kopieren, das Fenster schließen und in die Adressleiste des neuen Fensters einfügen - wir waren wieder in unserer Mailbox. Wenn nun der ID-Schlüssel nicht mit der IP-Adresse übereinstimmt (eine andere Art des Schutzes), ist es auf ähnliche Weise zulässig, in die Box eines anderen Benutzers einzudringen. Es reicht aus, das Standortfeld abzufangen, indem Tags in unsere Nachricht eingebettet werden, die eine Anfrage an den HTML-Sniffer senden Protokolliert wiederum die Variable HTTP_REFERER in einer speziellen Datei. Am einfachsten ist es, wie üblich, die Adresse des Schnüfflers anstelle des beabsichtigten Bildes anzugeben:



Protokolldatei - http://zero.h12.ru/stat/base.txt
Ein paar weitere Adressen Snifferov essen auf dieser Website. In der eigentlichen Lektion ist es sehr viel schwieriger, ein Skript zu schreiben, das die Adresse aufzeichnet, an die eine Anfrage gesendet wird - eine Lektion von fünf Minuten ist ein Hosting für die Platzierung des Skripts. Ein Beispiel für ein solches Skript in PHP:



Als nächstes betrachten wir die Situation, zu welcher Zeit die Alien-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 diese Option deaktivieren. Blockieren Sie alle eingehenden E-Mails . Außerdem möchten wir sie für die Box einer anderen Person aktivieren.



Die ID wird in einem versteckten "ID" -Feld übertragen. Um die Einstellungen zu ändern, müssen Sie sie jetzt auch in Echtzeit abrufen. Das erste, was auf Head-Javascript zurückgreift. Es verfügt über ein spezielles Standortobjekt und enthält auch die URL des aktiven Vorgangs. Um unseren Bezeichner aus dem Standortfeld zu erhalten, verwenden wir die substr () -Funktion.



Direkt funktioniert substr () nicht mit der Position, daher fügen wir das # -Symbol hinzu, weisen es einer Variablen zu, geben dann das Ergebnis der Berechnung in eine andere Variable ein und essen dann den ausgeschnittenen ID-Schlüssel. Argumente substr (): x-Position vom Anfang des Strings, x1-Position von x. In der Zeile http://www.newpochta.ru/session?id=a349f8d7be67c90af8873fc7ad803cf5&folder=inbox beginnt der Bezeichner an der 36. Stelle 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. Registrieren Sie sich in der gesendeten Datei:




EINMAL WIEDER ÜBER FILTER

Wenn wir auf Web-Interfaces mit Cookie-Identifikation Standardanforderungen zum Ändern von Einstellungen gesendet haben, können wir auch einfache HTML-Tags verwenden. Wenn Sie mit ID-Schlüsseln arbeiten, müssen Sie JavaScript-Code direkt in einen Brief einbinden, aber Mailserver-Entwickler blockieren diese Möglichkeit mit Filtern über sie oben erwähnt. Lassen Sie uns nun über den Verkauf dieser Filter sprechen. Nutzen Sie nicht ganz die üblichen Methoden, die Programmierer häufig übersehen:



Tatsächlich ist das JS hier in den Attributwerten von Tags, die mit der URL arbeiten, "versteckt" und wird auch dynamisch generiert, wenn die angegebene Adresse geladen wird.

Manchmal darf der Filter ausgetrickst werden , wodurch das System ein wenig vor böswilligem HTML verborgen wird. Daher darf auf www.mail.ru in jedem Tag der JS-Ereignishandler eingefügt werden. Im Nominalmodus Zeichenfolge



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



Ein Fehler auf diese Weise ist, dass zum Teil eine Bindung an einen bestimmten Browser besteht, da diese manchmal dazu neigen, HTML-Code auf unterschiedliche Weise zu interpretieren.
Nachfolgender wichtiger Punkt - wie man einen Brief sendet. Wenn Sie eine 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 von einigen WWW-Schnittstellen und POP3-Mailprogrammen unterstützt. Im Nachrichtenmanager neben der Nachricht wird das angehängte Dateisymbol nicht verschoben.

ZUSAMMENFASSUNG

Nachdem Sie sich auf den Weg gemacht haben, in ein fremdes Postfach zu gelangen, müssen Sie zunächst das System auf das Vorhandensein von Schwachstellen untersuchen. Manchmal erlauben Programmierer signifikante Fehler beim Schreiben von Skripten. Ungefähr jeder Dienst hat die Funktion, vergessene Passwörter wiederherzustellen. In der Regel wird auf der ersten Seite das Login eingegeben, auf der anderen Seite wird die geheime Aufgabe beanstandet, auf der dritten Seite wird das Passwort geändert, wenn die Antwort korrekt ist. Angenommen, es liegt eine schwerwiegende Sicherheitsverletzung im System vor, die uns interessiert, aber genau: Wir haben die geheime Aufgabe richtig beantwortet. Wir haben auch eine neue Seite mit einem Kennwortänderungsformular generiert. Beim Betrachten des HTML-Codes dieser Seite haben wir jedoch festgestellt, dass der Benutzer nur die Variable im Feld erkennt "Benutzername", dh durch Ersetzen eines anderen Benutzernamens, ändert das Passwort in einer fremden Box. Oder eine solche Variante: Im Austausch für einen gültigen Einspruch wird eine Kennung ausgegeben, die der während einer Arbeitssitzung mit Mail verwendeten ähnlich ist. Möglicherweise akzeptiert der Server die neuen Einstellungen, nachdem er den aktuellen ID-Schlüssel erhalten hat, der auch die ausgeblendeten Felder ersetzt. Ich halte es für absurd, auf solche Auslassungen zu hoffen, da strikt darauf geachtet wird, dass sich solche Fehler nicht wiederholen. Aus diesem Grund werden wir nach Schwachstellen im Prinzip der Serviceorganisation suchen.

Wenn Sie sich die Webmail auf www.newmail.ru ansehen (nm.ru, pochta.ru, orc.ru, nightmail.ru, hotmail.ru) , dann gibt es einmal solche Nachteile. Lesen Sie erneut die Option zur Passwortwiederherstellung. 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 die Antwort ist, dass sich die E-Mails auf verschiedenen Seiten in der E-Mail befinden, scheint es auch möglich zu sein, etwas anderes zu ändern, zumal der Filter nicht einmal JavaScript ausschneidet. Wenn Sie ein Kennwort erneuern, wird außerdem ein anderes Formular angezeigt. Sie müssen weitere Daten eingeben (wie in den Postfacheinstellungen angegeben) und an das Lineal senden. Es ist bereits bekannt, wie dem gewünschten Benutzer Daten vorab zugewiesen werden.

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





Nach dem Löschen des Kontos registriert er ein neues, mit dem gleichen Namen erhält er auch ein Passwort dafür.

Es besteht die Möglichkeit, mit einem solchen Blabla auch auf das Konto bei mail.ru zu gelangen. Setzen Sie in einer Nachricht die Sicherheitseinstellungen zurück



Jetzt wird jedes Mal, wenn sich der Benutzer anmeldet, der ID-Schlüssel ausgegeben, und die IP-Adresse wird nicht berücksichtigt. Wie bereits erwähnt, kann der gewünschte Buchstabe auch gelesen werden, wenn Sie ihn mit einem Sniffer abfangen.

Abschließend möchte ich noch einmal darauf hinweisen, dass die hier präsentierten Informationen mehr oder weniger erfahrenen Benutzern seit langem bekannt sind, und dass der gesamte Ansatz, die Box durch HTML zu knacken, meiner Meinung nach auch heute mehr Ergebnisse als Brutus Forces oder Social Engineering verfremdet. Sie müssen nur einen schwachen Raum finden und einen Weg finden, ihn zu nutzen.