conf t

インフラエンジニアのメモ

Struts2のS2-052(CVE-2017-9805)脆弱性のPOCを検証する

f:id:monaski:20170911125703p:plain

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/ f:id:monaski:20170911125703p:plain

2.POC検証

f:id:monaski:20170911125715p:plain

ターゲット上で任意のコマンドが実行できました。
脆弱性に該当するstruts2を運用している場合は、早急に対処が必要です。

関連:
monaski.hatenablog.com

参考: http://io.cyberdefense.jp/entry/2016/06/22/Docker%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%80%81Apache_Struts2%E3%81%AE%E8%84%86%E5%BC%B1%E6%80%A7S2-037%E3%81%AE%E3%82%84%E3%82%89%E3%82%8C%E7%92%B0%E5%A2%83%E3%82%92%E6%89%8B%E8%BB%BD%E3%81%AB%E4%BD%9C