Apache-Solr-RCE-via-Velocity-template
参考リンク
脆弱性の発生原因:
- 攻撃者がSolrコンソールに直接アクセスできる場合、/ノード名/config のようなPOSTリクエストを送信することで、そのノードの設定ファイルを変更できます。
- Apache SolrはデフォルトでVelocityResponseWriterプラグインを統合しています。このプラグインの初期化パラメータ内のparams.resource.loader.enabledオプションは、パラメータリソースローダーがSolrリクエストパラメータでテンプレートを指定することを許可するかどうかを制御するためのもので、デフォルトはfalseです。params.resource.loader.enabledをtrueに設定すると、ユーザーはリクエスト内のパラメータを設定することで関連リソースの読み込みを指定できるようになります。つまり、攻撃者は脅威となる攻撃リクエストを構築して、サーバー上でコマンド実行を行うことができます。
脆弱性の再現 :再発する脆弱性
方法1:手動検出
http://x.x.x.x:8983/solr/#/ にアクセスしてメインインターフェースに入り、左側のCore Selectorをクリックしてコレクション名を確認します。

以下の2つのpayloadを使用します。
-
コレクション設定の変更

-
コマンド実行
コマンド実行に成功しました!
方法2:スクリプトによる検出


脆弱性の修正提案:
- ネットワーク設定が信頼できるトラフィックのみがSolrと通信できるようにすることを推奨します。
信頼できるトラフィックのみがSolrと通信できるようにネットワーク設定を確実に設定することを推奨します。
- params.resource.loader.enabled を false に指定し、設定ファイルを読み取り専用に設定します。
params.resource.loader.enabled を false に指定し、その後設定ファイルを読み取り専用に設定します。
デフォルトでは、params.resource.loader.enabled は false であり、設定ファイルはありません。対応する値を変更したい場合や強制的に変更したい場合は、設定ファイルが必要です。
デフォルトでは、params.resource.loader.enabled は false です。設定ファイルはありません。対応する値を変更したい場合や強制的に変更したい場合は、ファイルを設定する必要があります。
デフォルトでは、ノードの設定ファイル configoverlay.json は読み書き権限を持っています。
デフォルトでは、ノード設定ファイル configoverlay.json は読み書き権限の設定ファイルです。
設定ファイルのパス:(実際の状況に応じて異なります)
Path: (depending on the actual situation)
./example/example-DIH/solr/db/conf/configoverlay.json:
./example/example-DIH/solr/mail/conf/configoverlay.json:
./example/example-DIH/solr/solr/conf/configoverlay.json:
すべてのconfigoverlay.json内のparams.resource.loader.enabledをfalseに設定します。configoverlay.jsonがない場合は、手動で作成し、その権限を読み取り専用に設定することをお勧めします。
configoverlay.json内のすべてのparams.resource.loader.enabledをfalseに設定します。configoverlay.jsonがない場合は、手動で作成し、その権限を読み取り専用に設定することを推奨します。
EXP説明:
- ノードを検索し、POST可能なノードを走査して判断する必要があります。
ノードを検索し、どのノードがPOST可能であるかを走査して判断する必要があります。
- オペレーティングシステムのバージョンを判断し、コマンドを入力して操作を実行する必要があります。
また、オペレーティングシステムのバージョンを確認し、コマンドを入力して操作を実行することを決定する必要があります。