This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
今回の問題は、StrutsでHttpリクエストパラメータをFormに入れる際に、commons-beanutilsの | |
BeanUtils.populateを使っていることに起因する。 | |
populateの中で使われている、BeanUtils.setPropertyはノーチェックでBeanのプロパティを探すので、 | |
プロパティ名を"class.classLoader.xxx"のように書いておくと、BeanのgetClassをよんで、 | |
ClassオブジェクトのgetClassLoaderをよんで、…と連鎖してクラスローダが取得される。 | |
そしてドットでつないだ最後のプロパティ名で値をセットにいくので、TomcatのWebAppClassLoaderが | |
途中でゲットされてしまうと、Struts2の脆弱性と同じ問題が発生してしまう。 |