secbeg’s log

作業メモです

struts2脆弱性(CVE-2017-9805)(S2-052)の検証

0.はじめに

struts2脆弱性(CVE-2017-9805)の検証をしてみました。

1. 脆弱性概要

該当バージョンのstruts2を使用しており、REST プラグインを使用している場合に、 XML リクエストに悪意のあるコードを埋め込むことで、RCEが可能な脆弱性です。

2.環境

今回はrestプラグインが使用されている、「struts2-rest-showcase」を使用して検証します。「struts2-rest-showcase」はstruts2に同包されているアプリケーションです。

画面はこんな感じです。 f:id:secbeg:20171102081917p:plain

構築方法は下記を参考にしてください。

secbeg.hatenablog.com

3.PoC

curlコマンドを使用して検証してみます。 コードは隠していますが、下記コマンドを実行しています。

# touch /tmp/poc/attack

まず、/tmp/pocに何もファイルがないことを確認しておきます。

f:id:secbeg:20171102081319p:plain

その後、検証コードをサーバに送ります。

f:id:secbeg:20171102081427p:plain

4.確認

サーバに「attack」ファイルができていることを確認できます。

f:id:secbeg:20171102081553p:plain

restプラグインの使用が条件となりますが、検証コードがインターネットに出回っており、簡単に攻撃が可能であルため、早急な対策が必要です。

5.参考

S2-052 - Apache Struts 2 Documentation - Apache Software Foundation

Apache Struts 2 の脆弱性 (S2-052) に関する注意喚起