secbeg’s log

作業メモです

tomcat脆弱性(CVE-2017-12617)の検証

0.はじめに

tomcat脆弱性(CVE-2017-12617)を検証してみました。

1. 脆弱性概要

当該ソフトウェアにおいて、PUTリクエストを受付ける設定になっている場合、任意のjspファイルアップロードが行われる脆弱性。 putを許可しているんだから、ファイルをアップロードできるのは正常だろと思う人もいるかもしれませんが、tomcatではjspファイルのアップロードはできないようになっています。 任意のjspがアップロードされてしまうので、RCEが可能となります。

2. 設定

デフォルトでは、putが許可されていないので、許可するために下記にファイルを編集する。

# vi /opt/apache-tomcat-8.5.21/conf/web.xml

で、下記を適切な場所に追記する。

        <init-param>
                <param-name>readonly</param-name>
                <param-value>false</param-value>
        </init-param>

その後、tomcatを再起動する。

# /opt/apache-tomcat-8.5.21/bin/shutdown.sh
# /opt/apache-tomcat-8.5.21/bin/startup.sh

3. PoC(Proof of Concept)

f:id:secbeg:20171029002330p:plain

コードは隠していますが、jsp upload と記載されているhack.jspをアップロードするもの。

3. 確認

ブラウザから f:id:secbeg:20171029001454p:plain

サーバ側でも、
f:id:secbeg:20171029001704p:plain

検証は成功していることがわかる。

悪意のあるjspファイルがアップロードされることで、バックドアが作られる可能性があるため、早急な対策が必要。

4.参考

Apache Tomcat における脆弱性に関する注意喚起