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などが入っていたらブロックする、

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

引き続き調査です。

No TrackBacks

TrackBack URL: http://www.reverse-edge.com/cgi-bin/mt/mt-tb.cgi/43

Leave a comment

About this Entry

This page contains a single entry by gamzatti published on September 7, 2017 11:36 PM.

Business trip in Paris -part1- was the previous entry in this blog.

S2-053 is the next entry in this blog.

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