はじめに
2018 年 8 月 22 日、Apache Struts2 には、高リスクのリモート コード実行の脆弱性 (S2-057/CVE-2018-11776) が存在する最新のセキュリティ情報がリリースされました。この脆弱性は、Semmle Security Research チームのセキュリティ研究者 Man YueMo によって発見されました。
この脆弱性は、Struts2 開発フレームワークで名前空間関数を使用して XML 構成を定義するときに、名前空間の値が設定されておらず、上位層のアクション構成にも設定されていないことが原因です (アクション設定)、またはワイルドカード名前空間を使用するため、リモートでコードが実行される可能性があります。同様に、URL タグに value と action の値が設定されておらず、上位のアクションが設定されていない場合や、ワイルドカード名前空間が使用されている場合も、リモートでコードが実行される可能性があります。構築された環境では、脆弱性は正常に再現され、コマンド echo を実行できます。この記事の最後には、必要なものが揃っています。!
脆弱性の悪用
作成者が使用した環境それぞれStrust2 2.3.20版とStrust2 2.3.34版であり、この脆弱性を悪用する方法としては、数値計算、ポップアップ計算機、コマンドエコーの大きく3つが考えられます。
2.1 数値計算
数値計算は比較的簡単です。URLに%{100 200}を指定するとジャンプして計算結果が得られます
2.2 ポップアップ計算機
バージョン 2.3.20 の POC は次のとおりです。
バージョン 2.3.34 の POC は次のとおりです:
攻撃後の影響は次のとおりです
#注意すべき点が 2 つあります。1 つ目は struts.mapper .alwaysSelectFullNamespace = true に設定する必要があります。そうでない場合、脆弱性はトリガーされません。この設定の目的は、最後の前の任意の位置で NameSpace が常に選択されるかどうかを設定することです。スラッシュ; 2 番目の結果タグによって返されるタイプは、「redirectAction またはchain」を選択します。この 2 つだけです。各構成オプションの値は、アクションを転送またはリダイレクトできます。タイプの詳細については、以下の図を参照してください。
設定が完了したら、動的分析を開始します。この脆弱性は
this.namespace メンバーの値は getNamespace( ) メソッドを呼び出し、getUriFromActionMapping() を通じて URI 文字列を返します。
#getUriFromActionMapping を通じて取得した値が tmpLocation 変数に割り当てられ、式が setLocation メソッドに入ります
取得した param 値は、translateVariables() メソッドに渡され、最終的に OnglTextPaser での OGNL 式の実行につながります。
電卓をポップアップした後、取得された lastFinalLocation の値は、現在の実行後のハンドルです。この値は、応答ジャンプのアクション アドレスとして使用されます。これは、ポップ後にアドレス バーに表示される URI です。ブラウザで計算機を起動します
ポップアップ計算機の解析はここで終了です。次に、コマンド実行のエコー結果に基づいた解析を見てみましょう。基本的には、上記と同じです。唯一の違いは、lastFinalLocation によって返される値です。これは NULL です。これは、送信後に 302 ジャンプがないことを意味します。これはまだ現在のアクションであり、戻り値は 200
# 原理を知った後、同僚 経験値検出スクリプトは Python で実装されています。このスクリプトは学習と研究専用です。
1. フレームワークのバージョンを変更する最新の正式バージョンにアップグレードします; 2. Web アプリケーションの場合、コードのセキュリティを確保するように努めます; 3. IDS ルール レベルの場合、数値計算と箇条書き電卓はステータス コードをすべて 302 に返し、ロケーション ジャンプ フィールドには特性ハンドル文字列が含まれます。コマンド echo によって返されるステータス コードが 200 の場合、コマンド結果の出力;
以上がStruts2-057 2 つのバージョンの RCE 脆弱性分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

ホットトピック









