gamzatti: September 2017 Archives

S2-053

gamzatti
Vote 0 Votes

引き続きでたS2-053を検証。

またOGNL関連ですね。

FreeMarkerなるタグライブラリを使って、ユーザからの入力値を参照しているような場合に影響を受けるようです。

FreeMarkerは使ったことがなく、使い方がよくわかりませんでしたが、以下の通りにやると

確かに任意のコード実行できる。

S2-053 复现分析过程(附POC)

とはいえ、攻撃成立には条件があるので、影響は限られているのかもしれないと思いました。

S2-052

gamzatti
Vote 0 Votes

仕事がひと段落したので、前から気になっていたS2-052を検証。

ProcessBuilderなどの外部プロセスを起動するコマンドが含まれるXMLをリクエストで投げると、

XStream.fromXML()でXMLをデシリアライズする処理の延長で任意のコードが実行されるようです。

私が試したのは以下。

S2-052的POC测试

ProcessBuilderのcommandメソッドの仕様は、引数が持つプログラムを実行したい場合、

ProcessBuilder pb = new ProcessBuilder();
pb.command("touch", "/tmp/attack")


のようにcommandメソッドの引数に指定するので、

<command> <string>touch</string><string>/tmp/attack</string> </command>

のように指定すると、好きな外部プロセスを起動できてしまう。

自サーバに入れているフィルタはOGNL系の文字列をブロックするようにしていますが、

今回はOGNL系の攻撃ではないので、これでは防げない。

リクエストにjava.lang.ProcessBuilderとかjava.lang.Runtimeなどが入っていたらブロックする、

なども検討した方がいいのかもしれないなと。

引き続き調査です。

About this Archive

This page is an archive of recent entries written by gamzatti in September 2017.

gamzatti: July 2017 is the previous archive.

Find recent content on the main index or look in the archives to find all content.