最近、Sangfor は、Apache axis コンポーネントのリモート コマンド実行の脆弱性を悪用する方法を発見しました。この脆弱性の本質は、管理者による AdminService の設定ミスにあります。enableRemoteAdmin
属性が true に設定されている場合、攻撃者はリモートから AdminService インターフェイスを使用して、構築された WebService を自己公開することができます。生成された WebService にアクセスするとき、内部参照クラスは、リモート コマンド実行の脆弱性を悪用するために使用されます。
axis コンポーネントの紹介
axis の正式名 Apache EXtensible Interaction System
は、Apache 拡張可能対話システムです。 axis は、サーバー側、クライアント側、およびゲートウェイの SOAP 操作を作成するための基本的なフレームワークを提供します。 axis の現在のバージョンは主に Java 用であり、C 指向のバージョンは開発中です。 axis は正確には SOAP エンジンではありませんが、スタンドアロン SOAP サーバーとしても、サーブレット エンジン (Tomcat など) に埋め込まれたサーバーとしても使用できます。
脆弱性分析
脆弱性の本質は、管理者の AdminService
の設定エラーです。 EnableRemoteAdmin 属性が true に設定されている場合、攻撃者は WebService
を構築して freemarker
コンポーネントの template.utility.Execute
クラスを呼び出し、リモートで使用することができます。 AdminService インターフェイスを使用して WebService を公開し、生成された WebService インターフェイスに再度アクセスし、実行するコマンドを渡すと、リモート コマンド実行の脆弱性を悪用できます。
脆弱性の再発
axis 1.4 tomcat6
の環境を構築し、AdminService構成のenableRemoteAdmin属性を次のように設定します。真実 。
次に示すように、WebService 公開用に構築されたデータを渡します。
次に、WebService インターフェイスを呼び出してコマンドを渡し、実行します。以下:
修復提案
1. URL アクセス制御ポリシーの構成: Axis サーバーに展開パブリック ネットワークでは、ACL により /services/AdminService
および /services/FreeMarkerService
パスへのアクセスが禁止されています。
2. 軸のリモート管理機能を無効にする: バージョン 1.4 未満の軸では、デフォルトでリモート管理機能がオフになっていますので、必要な場合以外は有効にしないでください。これをオフにする必要がある場合は、axis ディレクトリの WEB-INF
フォルダーにある server-config.wsdd
ファイルを変更し、「」の値を設定する必要があります。 EnableRemoteAdmin
" は false です。
Web セキュリティについて詳しく知りたい場合は、Web サーバー セキュリティ
を参照してください。以上がApache axis コンポーネントのリモート コマンド実行の脆弱性を修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。