質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

Struts 2

Apache Struts 2は、Apache Strutsプロジェクトにて開発されているオープンソースのJavaベースのWebアプリケーションフレームワークです。Sturts1に比べ、設定ファイルの削減、依存性の注入、POJO等の改善がなされています。

Apache Tomcat

Apache TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

1回答

286閲覧

Apache Struts 2 の脆弱性「CVE-2017-9791」について

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

Struts 2

Apache Struts 2は、Apache Strutsプロジェクトにて開発されているオープンソースのJavaベースのWebアプリケーションフレームワークです。Sturts1に比べ、設定ファイルの削減、依存性の注入、POJO等の改善がなされています。

Apache Tomcat

Apache TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

1クリップ

投稿2017/07/30 07:22

■質問
CVE-2017-9791は、Apache Struts 2 の「Object Graph Navigation Language(OGNL)式」を利用して RCE が可能になる脆弱性そうですが、
そのexploitコードには必ず、@ognl.OgnlContext@DEFAULT_MEMBER_ACCESSの文字列は含まれてるのでしょうか。
ognl.OgnlContext@DEFAULT_MEMBER_ACCESがなければ、クラスやメソッド(Actionクラス)にアクセスできないので、必ず@ognl.OgnlContext@DEFAULT_MEMBER_ACCESSの文字列が必要だ思っていますが、自信がないので質問させて頂きました。

■参考URL
http://blog.trendmicro.co.jp/archives/15425

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

必ず入り込むかと言えば「いいえ」です。他の理由でDEFAULT_MEMBER_ACCESSを許可された場合には不要です。
なお、S2-048が発動する原因は、Struts2内部からのOGNLの利用方法が引き起こす問題なのですが、より根本的な問題として、ActionMessageを設定する際に、

java

1messages.add("msg", new ActionMessage("Gangster " + gform.getName() + " was added"));

と、メッセージの値に直接入力値を混ぜ込んだ文字列にしてしまうと、 そのままの値をOGNL経由で実行してしまう 問題があります。

ちなみに問題となったStruts2-Struts1プラグインはデフォルトでは使用されず、またStruts2.1以降では動作はしますが、非推奨のプラグインであり、Struts2.5系では排除されています。

投稿2017/07/30 10:20

編集2017/07/30 13:19
A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ahodana

2017/07/30 10:42

発生したのが(申告されたのが)struts2-struts-pluginであって struts2-core単体で実行できますよ。
A-pZ

2017/07/30 13:15

おー、指摘ありがとうございます~。 でもこのメッセージ指定方法している作りが何というか…ですが、作りえるのはマズイですね。
退会済みユーザー

退会済みユーザー

2017/07/30 14:10

A-pZ様 ご回答ありがとうございます。 大変わかりやすかったです。 @ognl.OgnlContext@なくても、CVE-2017-9791のエクスプロイトを成立する可能性があるとうことですね。バージョンによると思いますが、DEFAULT_MEMBER_ACCESSのデフォルト値は許可なのでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問