[Seasar-user:21901] Re: Apache Struts 1脆弱性について

kubo [E-MAIL ADDRESS DELETED]
2014年 4月 25日 (金) 13:19:01 JST


久保(jflute)です

自分もリアルタイムで調べておりました。
まだ真っ最中なので、確定したものじゃないですが、
ポイントを共有させて頂きますね。
(逆に間違っていたらどなたかアドバイスください)

もともとの前提は、ネット上の情報を参照ということを前置きに...
問題とされている RequestProcessor の processPopulate() は、
S2RequestProcessor にてオーバーライドされています。
なので、RequestUtils.populate() は利用されていません。

SAStrutsでは、ネストしたプロパティを解析するのに、
BeanDescを利用しているようです。
S2RequestProcessor.setProperty() にて、
再帰的にネストしたプロパティを取得していますが、
実際の取得処理を行う getSimpleProperty() にて、
BeanDesc の PropertyDesc 経由で取得しています。

で、BeanDescImpl の setupPropertyDescs() を見ると、
getで始まっているメソッドでも methodName.equals("getClass") であれば
プロパティとして見なさないように判定されています。

実際に、BeanDescを単体で実行してみても class プロパティは取得できません。
Webアプリ経由でGETパラメーターを「変なの」にしてやっても、
getSimpleProperty() は null を戻していました。
というか、そもそも isReadable() でなければやっぱり null が戻りますし。
(ただ、実際に試したのは、SAStrutsを拡張したSAFluteですが、
その部分は何も変わらないので同じはずかと)

というところで、大丈夫なのかなって気もしますが、
まだ勉強中です。。。

2014-04-25 12:39 GMT+09:00 ogido E <erisyokin @ hotmail.com>:
>
> 以下の脆弱性について、
> sastrutsで開発したアプリへの影響を調べているところです。
> http://www.lac.co.jp/security/alert/2014/04/24_alert_01.html
>
> どう調べていいのかが分からなくて、悪戦苦闘していますが、
>
> 今回指摘されている脆弱性について、
> そもそもsastrutsで影響はあるのか、
> ご存知であれば、教えて頂きたいのですが。。。
>
> よろしくおねがいします。
>
>
>
> _______________________________________________
> Seasar-user mailing list
> Seasar-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


Seasar-user メーリングリストの案内