私はCTFチャレンジを解決しており、多層的です https://net-force.nl/challenge/level314/
(最新のブラウザはJavaアプレットをサポートしなくなったため、アプレットを正しく実行するためにOpera browser 9.xをダウンロードする必要がありました。)
Javaアプレットが適切な設定の組み合わせを見つけるために、ブルートフォースを実行する必要があることに気づきました。
私が試したこと:
ページ上のアプレットに気づき、wget
を使用してダウンロードし、jd-gui
を逆にします。他のクラスがそれをプルしてダウンロードしたことに気づきました。しかし、アプリをブルートフォースにできるほどローカルシステムでアプリを再作成する方法がわかりません。
Wireshark
を使用して、リクエストを操作し、ブルートフォース設定を行うクエリを再送信するために、Webページに送信されるパケットをキャプチャしました。ただし、WebページはHTTPS(エンドツーエンドの暗号化)であるため、ブラウザで「TCPストリームをたどる」と、通信を読み取ることができません。
Burp Suite
Webページへのリクエストをキャプチャするプロキシ。運がありません。 Javaアプレットがロードされると、設定をいじってみてもBurpプロキシで新しいリクエストは生成されません。キャプチャして操作するものは何もありません。これは、アプレットがロードされているためだと思いますJavaアプレットで遊んでいるときに、クライアントにHTTP要求がサーバーに送信されていません。私の質問:
Javaアプレットでローターマシンをブルートフォースにする方法を教えてください。つまり、自動化された方法でさまざまなデータをマシンに送信して出力を監視するにはどうすればよいですか?
アプレットを手動でダウンロードして逆コンパイルすることで、あなたは正しい道を進んでいます。それが私が同様にアプローチする方法です。オンザフライで追加のクラスをダウンロードする方法を逆にするには、コードをさらに理解する必要があるかもしれません。アプリの動作を理解するためにアプリを実行する必要はないことに注意してください-課題は、逆コンパイルされたクラスから簡単に理解できる、いわゆる「ローター設定」を取得することです。
Charles Proxyなどのツールを使用してHTTPSの問題を回避することもできます-Charlesは、ブラウザーのトラストストア(およびおそらくJavaのトラストストア)にインストールする必要があるルート証明書を提供します-たとえば、私のMacではJava設定ペインには独自のトラストストアがあります)、ツールはHTTPSをインターセプトし、そのルート証明書によって署名された有効なサーバー証明書をJavaアプリケーションに提示します。ただし、この特定のアプリが実際に初期ロードを超えて外部サービスを呼び出している場合は、本当に驚いています。
最悪の場合のシナリオでは、アプレットを常に通常どおり使用し、AutoItなどのいくつかの自動化ツールを使用してそれと対話することができます。
幸運を!