最近、Struts は攻撃者がリモート コードを実行できる脆弱性にパッチを適用しました。どうやらこれにパッチを当てないことは、ブラックハットに時流でレッドカーペットを歓迎するようなものです.
http://struts.apache.org/release/2.3.x/docs/s2-016.html
基本的に、次のような攻撃コマンドの実行を許可します。
正当な行為:
http://host/struts2-showcase/employee/save.action?redirect:%25{3*4}
悪用されたアクション:
http://host/struts2-showcase/employee/save.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'command','goes','here'})).start()}
できるだけ早くアップグレードする必要があることは承知していますが、コード ベースは古いバージョンの Struts とプラグインを使用しているため、できるだけ早くアップグレードするには時間がかかります。
これには、Struts 2 ライブラリをアップグレードするためのリファクタリングが必要です。その後、それらをテストする必要があります。
したがって、私の質問は、この脆弱性が実行されるのを阻止する考えがあるかどうかです。これは、アップグレードできるようになるまでの期間のみです。
OGNL に対して評価される前に URL をサニタイズするインターセプターを作成することが可能かどうか疑問に思っていました。
私が持っていた他のアイデアは、何らかの形でJavaセキュリティマネージャーを使用して任意のプロセス呼び出しを停止することでした.これは可能ですか? 一時的に穴を塞ぎますか?
使用されているサーバーは、誰かが関連性があると考える場合、jBoss です。