Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-68147-OSPOS-Stored-XSS — CVE-2025-68147 用の PoC リポジトリ: OpenSourcePOS における保存型クロスサイトスクリプティング (XSS)。この脆弱性により、Store Config モジュールへの悪意のある JavaScript インジェクションを介して特権昇格が可能になります。ペイロードの詳細とパッチ検証 (v3.4.0) を含みます。セキュリティ研究者: Aditya Singh (Nixon-H)。 | Kitploit
ツール/GitHubGitHub/nixon-h/cve-2025-68147-ospos-stored-xss
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育
GitHubnixon-h/cve-2025-68147-ospos-stored-xss

CVE-2025-68147-OSPOS-Stored-XSS

CVE-2025-68147 用の PoC リポジトリ: OpenSourcePOS における保存型クロスサイトスクリプティング (XSS)。この脆弱性により、Store Config モジュールへの悪意のある JavaScript インジェクションを介して特権昇格が可能になります。ペイロードの詳細とパッチ検証 (v3.4.0) を含みます。セキュリティ研究者: Aditya Singh (Nixon-H)。

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る
212ヶ月前未レビュー

CVE-2025-68147: OpenSourcePOS における格納型クロスサイトスクリプティング (XSS)

メタデータ詳細
CVE IDCVE-2025-68147
重大度高 CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:N
脆弱性タイプ格納型クロスサイトスクリプティング (CWE-79)
影響を受けるバージョンOpenSourcePOS v3.4.0、v3.4.1
修正済みバージョンv3.4.2
影響を受けるコンポーネントストア設定モジュール(Return Policy フィールド)
報告者Aditya Singh (Nixon-H)

📝 エグゼクティブサマリー

OpenSourcePOS の ストア設定 モジュールに、格納型クロスサイトスクリプティング (XSS) の脆弱性が発見されました。このアプリケーションは、"Return Policy" フィールドのユーザー入力を ospos_app_config データベーステーブルに保存する前に、適切にサニタイズしていませんでした。

この欠陥により、設定権限を持つ認証済みの攻撃者(または、別の CSRF チェーンを悪用する攻撃者)が任意の JavaScript ペイロードを注入できる可能性がありました。"Return Policy" はすべての販売レシートに動的にレンダリングされるため、注入されたペイロードは、レシートが生成または表示されるたびに、任意のユーザー(権限の低いレジ担当者、他の管理者、顧客など)のブラウザで自動的に実行されます。


🕵️‍♂️ 技術的根本原因分析

1. 脆弱なロジック

この脆弱性は、レシート表示テンプレートの app/Views/sales/receipt_default.php に存在します。

このアプリケーションは、グローバル設定配列($this->config['return_policy'])から "Return Policy" 文字列を取得し、表示用に準備します。

  • 問題点: 開発者はネイティブ PHP 関数の nl2br() を使用して、改行を HTML の改行タグ(<br>)に変換していました。
  • 失敗の原因: nl2br() は HTML の特殊文字をサニタイズしません。<script>、``、onload 属性などのタグを完全にそのまま残します。

脆弱なコード(修正前):

root@kitploit:~
<div id="sale_return_policy">
    <?php echo nl2br($this->config['return_policy']); ?>
</div>

2. データベースへの永続化

管理者が設定を保存すると、ペイロードは生のままデータベースに保存されます。

  • テーブル: ospos_app_config
  • キー: return_policy
  • 値: Policy Text... <script>alert('XSS')</script>

コントローラー側(Config.php)に入力サニタイズがなく、ビュー側(receipt_default.php)に出力エスケープがないため、このアプリケーションは格納型 XSS に対して脆弱です。


💥 概念実証 (PoC)

攻撃ベクトル

この攻撃は ストア設定 パネルを標的としますが、影響を受けるのは 販売/レシート モジュールです。

  1. エントリーポイント: http://[TARGET]/config(設定保存の POST リクエスト)
  2. 実行ポイント: http://[TARGET]/sales/receipt/[SALE_ID]

段階的な悪用手順

ステップ 1: インジェクション 管理者としてログインし、ストア設定 -> 一般 に移動しました。"Return Policy" テキストエリアに、以下の特定のペイロードを注入しました:

root@kitploit:~
Standard Return Policy: No Refunds.
<script>alert('XSS_BY_NIXON_SUCCESSFUL')</script>

ステップ 2: 永続化 「送信」をクリックすると、アプリケーションは /config/save に POST リクエストを送信しました。ペイロードはデータベースへの保存に成功しました。

ステップ 3: トリガー 他のユーザーへの影響を検証するため:

  1. ログアウトし、レジ担当者(低権限アカウント)としてログインし直しました。
  2. 販売 モジュールに移動しました。
  3. テストアイテムをカートに追加し、「販売を完了」 をクリックしました。
  4. 結果: アプリケーションはレシートビュー(例: http://localhost/sales/receipt/1)にリダイレクトします。ブラウザは return_policy の div を解析し、<script> タグに遭遇すると、即座に JavaScript を実行します。

確認された結果: XSS_BY_NIXON_SUCCESSFUL というメッセージのブラウザアラートボックスが表示されました。

📷 メディアによる証明

スクリーンショット 1: アラートの発動

スクリーンショット 2: 設定内のペイロード

🎥 ビデオデモ: クリックして PoC ビデオをダウンロード/視聴


⚠️ 影響シナリオ

これはスコープ変更 (S:C) を伴う脆弱性です。攻撃はサーバーに保存されますが、被害者のブラウザコンテキストで実行されるためです。

  1. 権限昇格とアカウント乗っ取り:
  • シナリオ: 攻撃者がセッション Cookie を盗むように設計された JavaScript ペイロードを注入します。
  • 実行: スーパー管理者が過去のレシート(例: /sales/receipt/105)を表示します。スクリプトは静かに実行され、document.cookie(ospos_session ID を含む)を攻撃者のサーバーに送信します。
  • 影響: 攻撃者はスーパー管理者のセッションを乗っ取り、パスワードを必要とせずにシステムを完全に制御できます。
  1. ワーム型の管理者作成:
  • シナリオ: ペイロードは、AJAX (XMLHttpRequest) を使用して管理操作を実行するスクリプトです。
  • 実行: ログイン中の管理者がレシートを表示すると、スクリプトはブラウザに /employees/save への隠し POST リクエストを強制的に送信させます。
  • 影響: 新しい管理者アカウント(例: hacker / password123)がバックグラウンドで即座に作成されます。被害者はレシートしか見えませんが、攻撃者は永続的なバックドアを獲得します。
  1. 改ざんとフィッシング:
  • シナリオ: 攻撃者が DOM を変更して、レシートの財務情報を改ざんします。
  • 実行: "Return Policy" スクリプトがフッターや支払い指示を書き換えます。
  • 影響: レシートに不正な銀行口座情報や暗号通貨ウォレットアドレス(「こちらに送金してください...」)が表示され、顧客や事業者に対する金銭的詐欺につながります。

🛡️ 対策

この脆弱性は OpenSourcePOS v3.4.2 で修正されました。

メンテナーは、コンテキスト認識型出力エンコーディング を実装するパッチを適用しました。設定値は nl2br() に渡される前に、CodeIgniter のグローバル esc() ヘルパー関数でラップされるようになりました。

パッチ(コミット 22297a):

root@kitploit:~
<div id="sale_return_policy">
    <?php echo nl2br(esc($this->config['return_policy'])); ?>
</div>

確認: v3.4.2 にアップグレード後、同じペイロードは無害なテキストとしてレンダリングされます:

Standard Return Policy: No Refunds. &lt;script&gt;alert('XSS_BY_NIXON_SUCCESSFUL')&lt;/script&gt;


📅 開示スケジュール

  • 2025-12-12: 手動セキュリティ監査中に Aditya Singh (Nixon-H) によって脆弱性が発見されました。
  • 2025-12-13: 責任ある開示レポートが、メール/GitHub 経由でメンテナー(Jeroen Peelaerts)に送信されました。
  • 2025-12-14: メンテナーによって脆弱性が確認されました。CVE-2025-68147 が予約されました。
  • 2025-12-14: パッチ(コミット 22297a)が開発され、研究者によって検証されました。
  • 2025-12-19: パッチがバージョン 3.4.2 でリリースされました。
  • 2025-12-19: GitHub Security Advisory を通じて公開開示されました。

🔗 参照

  • アドバイザリ: GHSA-xgr7-7pvw-fpmh
  • パッチ: コミット 22297a
  • 報告者: Aditya Singh (Nixon-H)
ツールをダウンロード