ソース:
脆弱性:RCE、SSRF
訳:
私の方法論:
- 範囲内のドメインを収集しました。
- アクティブおよびパッシブのサブドメインの列挙を開始しました。
パッシブ サブドメイン列挙に使用されるツール: subfinder (Shodan、Chaos、GitHub、Sublist3r などのさまざまなサービスの API キーを使用)。
アクティブなサブドメインの列挙には、Best DNS Wordlist の Assetnote Wordlist が使用されました。 - 約 219 個のサブドメインが見つかりました
https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt
4. 次のステップは、ステータス コードに基づいてライブ ドメインをフィルタリングして除外することでした。
5. ステータス コード 403 Forbidden を持つサブドメイン accounts.example.com がすぐに見つかりました。
6. そしてここからが実際の旅の始まりです。
そこで私はFFuF と有名なSeclists の単語リストを準備して、ファジング スキャンを開始しました。
CVE-2022–29464 に対して脆弱であると思われる エンドポイント /fileupload/toolsAny が見つかりました。
CVE-2022–29464 は、Orange Tsaiによって発見された WSO2 の重大な脆弱性です。
この脆弱性は、認証されていない無制限の任意のファイルのアップロードであり、認証されていない攻撃者が悪意のある JSP ファイルをアップロードすることで WSO2 サーバー上で RCE を取得できるようになります。
脆弱なエンドポイントは /fileupload で、攻撃者はこれを使用して .jsp ファイルをアップロードし、被害者のマシンのリバース シェルにつながる可能性がありました。
脆弱性を確認したら、次の課題は適切なエクスプロイトを見つけることでした。 これを行うには、Burp でリクエストをキャプチャしてリクエストを変更するか、開発されたエクスプロイトを使用するかの 2 つのアプローチがありました。
両方の手順を理解しましょう
方法 1: Burpを使用する
- Burp Suiteでエンドポイントリクエストをキャプチャする
- メソッドをGETからPOSTに変更します。
- Content-Disposition ヘッダーに加えて、エンドポイント名とファイル名を入力します。
例えば:
Content-Disposition: form-data; name=”../../../../repository/deployment/server/webapps/authenticationendpoint/MyShell.jsp”;filename=”MyShell.jsp”
4. POST 本文に、file.jsp が実行するコマンドを入力します。
例えば:
<% out.print(“MyShell Uploaded here”); %>
5. エンドポイント accounts.example.com/authenticationendpoint/MyShell.jsp に移動すると、コマンドが実行されます。
方法 2: エクスプロイトを使用する
- https://github.com/hakivvi/CVE-2022-29464 に移動します。
- Git でファイルをローカル マシンにクローンします。
- python3exploit.py https://accounts.example.com MyShell.jsp を使用してエクスプロイトを実行します
- エンドポイント https://accounts.example.com/authenticationendpoint/MyShell.jsp にアクセスします。
- あらゆるコマンドを実行できるようになります
その間、私は RCE を悪用し、同じドメイン accounts.example.com で waybackurls を使用していました。
そして、次のエンドポイントが私の目に留まりました。 https://accounts.example.com/shindig/gadgets/proxy?container=default&url=https://google.com
私はすぐにInteractsh クライアントを開き、ペイロードを貼り付けました。
同じ WSO2 も SSRF に対して脆弱であることが判明しました。
ほなほな。