Skip to content

Instantly share code, notes, and snippets.

View canujohann's full-sized avatar

johann canu canujohann

  • Axa Life Insurance
  • Tokyo
View GitHub Profile
@kawasima
kawasima / 0_概要
Last active April 19, 2019 03:11
Struts1脆弱性の検証 [S2-020]
今回の問題は、StrutsでHttpリクエストパラメータをFormに入れる際に、commons-beanutilsの
BeanUtils.populateを使っていることに起因する。
populateの中で使われている、BeanUtils.setPropertyはノーチェックでBeanのプロパティを探すので、
プロパティ名を"class.classLoader.xxx"のように書いておくと、BeanのgetClassをよんで、
ClassオブジェクトのgetClassLoaderをよんで、…と連鎖してクラスローダが取得される。
そしてドットでつないだ最後のプロパティ名で値をセットにいくので、TomcatのWebAppClassLoaderが
途中でゲットされてしまうと、Struts2の脆弱性と同じ問題が発生してしまう。