Wie wir jedes Unternehmen per Nachricht hacken konnten – 20.000 $ Bounty [CVE-2021-34506]
Die Geschichte eines universellen XSS (uXSS) im Übersetzer von Microsoft Edge, das eine Bounty von 20.000 $ einbrachte (CVE-2021-34506) – und wie sich damit Nutzer auf Facebook, Google und YouTube kompromittieren ließen.
![Wie wir jedes Unternehmen per Nachricht hacken konnten – 20.000 $ Bounty [CVE-2021-34506]](/_next/image?url=https%3A%2F%2Fblog.cyberxplore.com%2Fwp-content%2Fuploads%2F2025%2F06%2FSTORY-OF-CVE-1.png&w=3840&q=75)
Die Geschichte eines universellen XSS (uXSS) in Microsoft Edge
Hallo zusammen , ich hoffe, es geht euch in dieser Pandemie allen gut & ihr nutzt die Zeit, um im Alltag etwas Neues zu lernen . Das hier ist die Geschichte, wie man sich in jedes Unternehmen hacken kann – selbst in die großen wie Facebook , Google , Microsoft usw. Wie das alles begann? Um das zu verstehen, müssen wir ganz von vorne anfangen .
Am 3. Juni waren ich, @Th3Pr0xyB0y (Vansh Devgan) & mein Freund @MrRajputHacker (Shivam Kumar Singh) gemeinsam auf einer Subdomain von mail.ru unterwegs (Programm über Hackerone). Leider ist dieses Programm auf Russisch, und bekanntlich übersetzt Chrome Seiten aus anderen Sprachen automatisch. Wir alle arbeiten aber mit Firefox und Burpsuite, um an Webanwendungen zu tüfteln. Als wir also versuchten, Schwachstellen auf redacted.com (einer Subdomain von mail.ru) zu finden, stießen wir beim Übersetzen in Firefox auf jede Menge Probleme .
Wir suchten also nach Firefox-Erweiterungen, die die Seite in verständliches Englisch übersetzen. Beim Googeln stellten wir fest, dass sehr viele Erweiterungen entfernt worden waren, weil sie verwundbaren Code enthielten. Da kamen wir ins Grübeln, welche Auswirkungen eine anfällige Erweiterung auf die Nutzer des Browsers haben kann. Nach einer Weile wurde mir klar, dass solche Erweiterungen universellen Zugriff auf jede Seite im Browser haben – bist du zum Beispiel auf facebook.com, können sie das komplette DOM der Seite, die Cookies & alles auslesen, was mit JavaScript möglich ist. Deshalb verwarfen wir die Idee, eine Lücke in der mail.ru-Subdomain zu suchen .
Jetzt kommt der interessante Teil: Da MrRajputHacker schon mehrere Schwachstellen bei Microsoft gefunden hatte, begann er über weitere Bugs bei Microsoft zu sprechen. Ich schlug ihm allerdings vor, es doch einmal mit dem Angriff auf einen Browser oder vorinstallierte Erweiterungen zu versuchen. Und weil MrRajputHacker ohnehin gern Lücken bei Microsoft findet , entschieden wir (Th3Pr0xyB0y & MrRajputHacker), dass unser Ziel Microsoft Edge sein sollte – schließlich gibt es dafür ein Bounty-Programm .
Bevor wir uns endgültig auf den Microsoft Edge Browser stürzten, dachten sich Th3Pr0xyB0y & MrRajputHacker : Versuchen wir doch, die Website noch ein letztes Mal in Microsoft Edge zu übersetzen und zu testen (Edge hatte ein neues Update mit einem neuen Übersetzer von Microsoft bekommen). Also gingen wir auf dieselbe Seite, und da unsere mail.ru voller XSS-Payloads war, stellten wir fest: Sobald wir die Seite übersetzten, bekamen wir in Microsoft Edge jede Menge Popups. Das kam uns seltsam vor. Wir wechselten wieder zu Chrome und machten dasselbe – diesmal aber kein einziges Popup !
So gruben wir beide tiefer und fanden heraus, dass der interne, vorinstallierte Übersetzer von Microsoft Edge verwundbaren Code enthält: Er übernimmt beim Übersetzen jedes HTML-Tag mit einem “>img-Tag, ohne die Eingabe zu bereinigen oder die Payload in Text umzuwandeln. Der interne Übersetzer nahm also die Payload “>img src=x und führte sie als JavaScript aus, weil es keine ordentliche Prüfung gab, die eine Bereinigung durchführt oder das komplette DOM zunächst in Text umwandelt und es dann für die Übersetzung verarbeitet .
Unten seht ihr den betroffenen Code-Abschnitt; offenbar ist die Funktion startPageTranslation die Funktion, die betroffen war .
function translateInternal(originalLang, targetLang, shouldTranslateFullPageInOneGo) {
resetDataBeforeTranslateCall();
try {
originalLang = GetEdgeLanguageCode(originalLang);
targetLang = GetEdgeLanguageCode(targetLang);
/**
* This will call the startPageTranslation function of edge script
*/
Microsoft.JS.startPageTranslation(originalLang, targetLang, shouldTranslateFullPageInOneGo, ""/*domTranslatorSessionId*/
, ""/*token*/
, onSuccessCallback, onTranslateApiCalled, onErrorCallback);
console.error("edge Translation started");
} catch (err) {
console.error("Translate: " + err);
errorCode = ERROR["UNEXPECTED_SCRIPT_ERROR"];
return false;
}
return true;
Um zu beweisen, dass die Schwachstelle existiert, erstellten ich (Th3Pr0xyB0y) & MrRajputHacker eine Datei POC.html, die Text in verschiedenen Sprachen zusammen mit der berühmten XSS-Payload “><img src=x enthält.
Den Code-Abschnitt für die Datei POC.html findet ihr unten.
<b><u>SOME TEXT IN DIFFERENT LANGUAGE </u></b>
<br>
Políticas de Privacidade
Usaremos seus dados pessoais para resolver disputas, solucionar problemas e aplicar nossos Termos e Condições de Uso.
<br>
Para prevenir abusos no app/site, o Badoo usa decisões automáticas e moderadores para bloquear contas, como parte de seu procedimento de moderação. Para isso, nós conferimos contas e mensagens para encontrar conteúdo que indicam quebra dos nossos Termos e Condições de Uso. Isso é feito através de uma
<b><u>OUR PAYLOAD IN TEXT FORM </u></b>
<br>
<br>
"><img src=x
<br>
<br>
<br>
Políticas de Privacidade
Usaremos seus dados pessoais para resolver disputas, solucionar problemas e aplicar nossos Termos e Condições de Uso.
Jetzt kommt der besondere Teil dieses Blogs: die Ausnutzung bzw. die Schritte zur Reproduktion & die Beschreibung der Schwachstelle.
Bezeichnung der Schwachstelle – uXSS (Universal Cross Site Scripting)
Beschreibung der Schwachstelle –
Anders als bei den üblichen XSS-Angriffen ist UXSS eine Angriffsart, die clientseitige Schwachstellen im Browser oder in Browser-Erweiterungen ausnutzt, um eine XSS-Bedingung zu erzeugen und Schadcode auszuführen. Werden solche Schwachstellen gefunden und ausgenutzt, wird das Verhalten des Browsers beeinflusst und seine Sicherheitsfunktionen können umgangen oder deaktiviert werden.
Schritte zur Reproduktion –
1- Lade die Datei POC.html aus dem obigen Code-Abschnitt herunter oder kopiere den Code in eine Datei > benenne sie in POC.html um und speichere sie
2- Starte im selben Ordner, in dem deine POC-Datei liegt, einen Python-Server auf localhost mit dem folgenden Befehl
python3 -m http.server 80
3- Öffne Microsoft Edge ( Version 91.0.864.48 (Official build) (arm64)) & besuche http://localhost/POC.html
Sehr wahrscheinlich ist Edge zu dem Zeitpunkt, an dem du diesen Artikel liest, bereits auf eine sichere Version aktualisiert – deshalb kannst du den Fehler eventuell nicht nachstellen
4-Der Übersetzer zeigt dir die Meldung, dass diese Seite in einer anderen Sprache ist und ob du sie übersetzen möchtest ? Klicke auf die Schaltfläche zum Übersetzen
5-Boom, du bekommst alert(1)
Bitte beachten- Der Grund, warum wir selbst für eine HTML-Datei einen Python-Server hochfahren, ist einfach: Manchmal erscheint der Übersetzer nicht, wenn man die HTML-Seite nur öffnet – vermutlich, weil document.location dann about:html lautet, wenn wir die HTML-Datei einfach so öffnen.
Zwei Bedingungen für einen Remote-Exploit →
1-Die Person muss Microsoft Edge verwenden
2-Bei der Person muss AutoTranslate aktiviert sein
POC-VIDEO →
Auswirkung –
Wir können die Auswirkung in den vier folgenden Punkten zusammenfassen
1- Jede Seite, die “><img src=x (oder eine beliebige XSS-Payload) reflektiert, ist verwundbar – wir brauchen nur die Reflexion
2- Jede Person aus einem anderen Land (die kein Englisch kann), die auf einer englischsprachigen Seite über XSS liest, ist gefährdet → denn sie wird übersetzen (das XSS taucht als Popup auf)
3- Alle Nutzer von Edge sind für XSS anfällig, das auf jeder beliebigen Website ausgelöst werden kann
4- Jede Person, die eine E-Mail oder Nachricht mit Inhalt in einer anderen Sprache + XSS-Payload erhält (ist gefährdet)
In diesem Angriffsvektor sind so viele Szenarien möglich
Diese Schwachstelle ist als universelles XSS bekannt
So hätten wir Google & Facebook hacken können
Facebook → Wir legten ein Profil mit einem Namen in einer anderen Sprache und einer XSS-Payload an und schickten dem Opfer (das Edge nutzt) eine Freundschaftsanfrage. Sobald es unser Profil ansah, war es gehackt (XSS-Popup wegen der automatischen Übersetzung)
Google → Wir schrieben bei Google eine Bewertung für ein Unternehmen namens HackENews in einer anderen Sprache + XSS-Payload; jede Person, die diesen Bewertungslink aufrief, wurde gehackt (XSS-Popup wegen der automatischen Übersetzung)
Youtube → Wir erstellten ein YouTube-Video und hinterließen einen Kommentar mit XSS-Payload+anderer Sprache; jeder, der sich dieses Video in Edge ansah, wurde gehackt (XSS-Popup wegen der automatischen Übersetzung)
YOUTUBE UND GOOGLE HABEN DASSELBE POC-VIDEO
Windows-Store-Anwendung → Wir stellten fest, dass auch eine webbasierte Anwendung (zum Beispiel Instagram) aus dem Windows Store für diesen Angriff anfällig ist, da der Windows Store Anwendungen mit demselben Microsoft Edge Translator ausliefert, der für das Auslösen des uXSS-Angriffs (Universal XSS) verantwortlich war .
Zeitleiste
3. Juni 2021 : Bericht an Microsoft gesendet
7. Juni 2021 : Antwort von Microsoft, Prüfung läuft
8. Juni 2021 : Zusätzliche Informationen zur Auswirkung gesendet
15. Juni 2021 : Bericht triagiert
17. Juni 2021 : $20000 Bounty zugesprochen
19. Juni 2021 : Patch vor Veröffentlichung
24. Juni 2021 : Patch-Update ausgerollt & CVE zugewiesen als CVE-2021-34506
Die Release Notes und Danksagung von Microsoft findet ihr hier
uXSS Microsoft Edge Translator Bounty
Ressourcen zum Lernen –
2- Acuentix
Danke an alle fürs Lesen . Vergesst nicht, einen Applaus dazulassen, wenn es euch gefallen hat .
Folgt uns –
Twitter → @MrRajputHacker @Th3Pr0xyB0y
Instagram → @MrRajputHacker @vanshdevgan
Linkedin → MrRajputHacker @th3pr0xyb0y
Medium → @mrrajputhacker @th3pr0xyb0y



