dockerでStruts2の脆弱性S2-052を検証します。
tomcatのdockerイメージをベースにStruts2検証用dockerイメージを作成します。
1. 検証環境構築
過去のstruts2は以下からダウンロードできます。 http://archive.apache.org/dist/struts/
今回は以下をダウンロードしてきます
wget http://archive.apache.org/dist/struts/2.3.28.1/struts-2.3.28.1-apps.zip
dockerファイルの作成
以下内容で作成します
FROM tomcat:7.0-jre8 ADD struts-2.3.28.1/apps/struts2-rest-showcase.war /usr/local/tomcat/webapps/ CMD ["catalina.sh", "run"]
dockerイメージの作成
docker build -t struts/test .
dockerイメージの起動
docker run -it --rm -p 8080:8080 struts/test
以下ページが見れればちゃんと起動しています
http://ip address:8080/struts2-rest-showcase/
2.POC検証
ターゲット上で任意のコマンドが実行できました。
脆弱性に該当するstruts2を運用している場合は、早急に対処が必要です。