2018/08/22に「Apache Software Foundation」からS2-057(Apache Struts 2 の脆弱性)の情報が公開されました。
今回は巷で話題のこの脆弱性の検証をやります。
※なお8/25現在OSコマンドの実行までは検証できていません。
S20-057の詳細
IPAからの情報は以下です。
Apache Struts 2 には、以下の条件の両方を満たす場合に、リモートで任意のコードが実行される脆弱性(CVE-2018-11776)が存在します。・alwaysSelectFullNamespace を true に設定している場合
・Struts設定ファイルに、オプションのnamespace属性を指定しないか、ワイルドカードネームスペースを指定する “action”タグまたは “url”タグが含まれている場合
本脆弱性が悪用された場合、遠隔の第三者によって、サーバ上で任意のコードを実行される可能性があります。
参考:https://www.ipa.go.jp/security/ciadr/vul/20180823-struts.html
少し前に「S2-045」の検証環境を構築したばかりですので、その環境がそのまま使用することができそうです。
S2-057の準備
まずは「struts-actionchaining.xml」を書き換える必要があります。
場所は以下にあります。
/struts2-showcase/WEB-INF/classes/struts-actionchaining.xml /struts2-showcase/WEB-INF/src/java/struts-actionchaining.xml
ファイル内容については以下のように書き換えます。
<struts> <package name="actionchaining" extends="struts-default" > <action name="actionChain1" class="org.apache.struts2.showcase.actionchaining.ActionChain1"> <result type="redirectAction"> <param name = "actionName">register2</param> </result> </action> </package> </struts>
上記で準備は完了です。
まずは以下のようなURLを入力し足し算の結果が返ってくるか確認してみましょう。
http://192.168.70.135:8080/struts2-showcase/${(123+123)}/actionChain1.action
すると以下のとおり、足し算の結果である「246」が返ってきていることがわかります。
さて次に「S2-045」と同じようにOGNLによるコマンド実行をと行きたいんですが、8/25現在コマンドの実行まで確認できていません。
ツイッターでもやはりOGNLでのコマンドの実行まで出来ている人はいない感じがしますね。
中国のサイトを引き続き観測していきますので、情報があれば共有していただけると助かります。
※中国のサイトを見ていると「calc」が実行されている様子のキャプチャがあるんですが、あれは何なんでしょうね・・・
最後に
S2-057という新しいstruts2の脆弱性が公開されました。
使用している方はすぐにアップデートを行いましょう。いつちゃんと動作するPoCが出てくるかわかりません。
上記に記載のとおり、最新版の「2.3.35」、「2.5.17」にしてください。
最新の情報が判明次第追記します。
不明点や要望やこういったこともやって欲しいとの要望があれば、お問い合わせページやコメント、ツイッターからでも結構ですので、気軽にご連絡ください。
コメント